mirror of https://github.com/ElemeFE/element
parent
7abe758878
commit
5ff24db2ff
|
@ -1,2 +1,5 @@
|
||||||
popper.js
|
popper.js
|
||||||
fecha.js
|
fecha.js
|
||||||
|
release.sh
|
||||||
|
node_modules
|
||||||
|
lib
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const components = require('../components.json');
|
const components = require('../../components.json');
|
||||||
const execSync = require('child_process').execSync;
|
const execSync = require('child_process').execSync;
|
||||||
const existsSync = require('fs').existsSync;
|
const existsSync = require('fs').existsSync;
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
@ -11,10 +11,10 @@ delete components.index;
|
||||||
delete components.font;
|
delete components.font;
|
||||||
|
|
||||||
Object.keys(components).forEach(key => {
|
Object.keys(components).forEach(key => {
|
||||||
const filePath = path.join(__dirname, `../packages/${key}/cooking.conf.js`);
|
const filePath = path.join(__dirname, `../../packages/${key}/cooking.conf.js`);
|
||||||
|
|
||||||
if (existsSync(filePath)) {
|
if (existsSync(filePath)) {
|
||||||
componentPaths.push(`packages/${key}/cooking.conf.js`);
|
componentPaths.push(`../packages/${key}/cooking.conf.js`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
var Components = require('../components.json');
|
var Components = require('../../components.json');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var render = require('json-templater/string');
|
var render = require('json-templater/string');
|
||||||
var uppercamelcase = require('uppercamelcase');
|
var uppercamelcase = require('uppercamelcase');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
var OUTPUT_PATH = path.join(__dirname, '../src/index.js');
|
var OUTPUT_PATH = path.join(__dirname, '../../src/index.js');
|
||||||
var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}/index.js\';';
|
var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}/index.js\';';
|
||||||
var ISNTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});';
|
var ISNTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});';
|
||||||
var MAIN_TEMPLATE = `{{include}}
|
var MAIN_TEMPLATE = `{{include}}
|
||||||
|
@ -65,7 +65,7 @@ ComponentNames.forEach(name => {
|
||||||
var template = render(MAIN_TEMPLATE, {
|
var template = render(MAIN_TEMPLATE, {
|
||||||
include: includeComponentTemplate.join('\n'),
|
include: includeComponentTemplate.join('\n'),
|
||||||
install: installTemplate.join('\n'),
|
install: installTemplate.join('\n'),
|
||||||
version: require('../package.json').version,
|
version: process.env.VERSION || require('../../package.json').version,
|
||||||
list: listTemplate.join(',\n')
|
list: listTemplate.join(',\n')
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
var postcss = require('postcss');
|
var postcss = require('postcss');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var fontFile = fs.readFileSync(path.resolve(__dirname, '../packages/theme-default/src/icon.css'), 'utf8');
|
var fontFile = fs.readFileSync(path.resolve(__dirname, '../../packages/theme-default/src/icon.css'), 'utf8');
|
||||||
var nodes = postcss.parse(fontFile).nodes;
|
var nodes = postcss.parse(fontFile).nodes;
|
||||||
var classList = [];
|
var classList = [];
|
||||||
|
|
||||||
|
@ -17,4 +17,4 @@ nodes.forEach((node) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.writeFile(path.resolve(__dirname, '../examples/icon.json'), JSON.stringify(classList));
|
fs.writeFile(path.resolve(__dirname, '../../examples/icon.json'), JSON.stringify(classList));
|
|
@ -97,13 +97,13 @@ export default {
|
||||||
];
|
];
|
||||||
|
|
||||||
// 添加到 components.json
|
// 添加到 components.json
|
||||||
const componentsFile = require('../components.json');
|
const componentsFile = require('../../components.json');
|
||||||
if (componentsFile[componentname]) {
|
if (componentsFile[componentname]) {
|
||||||
console.error(`${componentname} 已存在.`);
|
console.error(`${componentname} 已存在.`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
componentsFile[componentname] = [`./packages/${componentname}/index.js`];
|
componentsFile[componentname] = [`./packages/${componentname}/index.js`];
|
||||||
fileSave(path.join(__dirname, '../components.json'))
|
fileSave(path.join(__dirname, '../../components.json'))
|
||||||
.write(JSON.stringify(componentsFile, null, ' '), 'utf8')
|
.write(JSON.stringify(componentsFile, null, ' '), 'utf8')
|
||||||
.end('\n');
|
.end('\n');
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ Files.forEach(file => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// 添加到 nav.config.json
|
// 添加到 nav.config.json
|
||||||
const navConfigFile = require('../examples/nav.config.json');
|
const navConfigFile = require('../../examples/nav.config.json');
|
||||||
navConfigFile[navConfigFile.length - 1].list.push({
|
navConfigFile[navConfigFile.length - 1].list.push({
|
||||||
path: `/${componentname}`,
|
path: `/${componentname}`,
|
||||||
name: `${chineseName} (${componentname})`,
|
name: `${chineseName} (${componentname})`,
|
||||||
|
@ -124,7 +124,7 @@ navConfigFile[navConfigFile.length - 1].list.push({
|
||||||
: `${componentname} ${chineseName}`
|
: `${componentname} ${chineseName}`
|
||||||
});
|
});
|
||||||
|
|
||||||
fileSave(path.join(__dirname, '../examples/nav.config.json'))
|
fileSave(path.join(__dirname, '../../examples/nav.config.json'))
|
||||||
.write(JSON.stringify(navConfigFile, null, ' '), 'utf8')
|
.write(JSON.stringify(navConfigFile, null, ' '), 'utf8')
|
||||||
.end('\n');
|
.end('\n');
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
var Components = require('../components.json');
|
||||||
|
var path = require('path');
|
||||||
|
var externals = {};
|
||||||
|
|
||||||
|
Object.keys(Components).forEach(function(key) {
|
||||||
|
externals[`packages/${key}/index.js`] = `element-ui/lib/${key}`;
|
||||||
|
externals[`packages/${key}/style.css`] = `element-ui/lib/${key}/style.css`;
|
||||||
|
externals['main/utils/clickoutside'] = 'element-ui/lib/utils/clickoutside';
|
||||||
|
externals['main/utils/popper'] = 'element-ui/lib/utils/popper';
|
||||||
|
externals['main/utils/vue-popper'] = 'element-ui/lib/utils/vue-popper';
|
||||||
|
});
|
||||||
|
|
||||||
|
exports.externals = Object.assign({
|
||||||
|
vue: {
|
||||||
|
root: 'Vue',
|
||||||
|
commonjs: 'vue',
|
||||||
|
commonjs2: 'vue',
|
||||||
|
amd: 'vue'
|
||||||
|
}
|
||||||
|
}, externals);
|
||||||
|
|
||||||
|
exports.alias = {
|
||||||
|
main: path.resolve(__dirname, '../src'),
|
||||||
|
packages: path.resolve(__dirname, '../packages'),
|
||||||
|
examples: path.resolve(__dirname, '../examples')
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.jsexclude = /node_modules|utils\/popper\.js|utils\/date.\js/;
|
|
@ -1,5 +1,5 @@
|
||||||
var cooking = require('cooking');
|
var cooking = require('cooking');
|
||||||
var path = require('path');
|
var config = require('./config');
|
||||||
|
|
||||||
cooking.set({
|
cooking.set({
|
||||||
entry: './src/index.js',
|
entry: './src/index.js',
|
||||||
|
@ -8,14 +8,11 @@ cooking.set({
|
||||||
format: 'cjs',
|
format: 'cjs',
|
||||||
extends: ['vue2'],
|
extends: ['vue2'],
|
||||||
minimize: false,
|
minimize: false,
|
||||||
alias: {
|
alias: config.alias,
|
||||||
main: path.join(__dirname, '../src'),
|
|
||||||
packages: path.join(__dirname, '../packages'),
|
|
||||||
examples: path.join(__dirname, '../examples')
|
|
||||||
},
|
|
||||||
externals: { vue: 'vue' }
|
externals: { vue: 'vue' }
|
||||||
});
|
});
|
||||||
|
|
||||||
cooking.add('output.filename', 'element-ui.common.js');
|
cooking.add('output.filename', 'element-ui.common.js');
|
||||||
cooking.add('loader.js.exclude', /node_modules|utils\/popper\.js|util\/fecha.\js/);
|
cooking.add('loader.js.exclude', config.jsexclude);
|
||||||
|
|
||||||
module.exports = cooking.resolve();
|
module.exports = cooking.resolve();
|
|
@ -0,0 +1,27 @@
|
||||||
|
var cooking = require('cooking');
|
||||||
|
var path = require('path');
|
||||||
|
var Components = require('../components.json');
|
||||||
|
var config = require('./config');
|
||||||
|
var entries = {};
|
||||||
|
|
||||||
|
Object.keys(Components).forEach(function(key) {
|
||||||
|
const compo = Components[key];
|
||||||
|
|
||||||
|
compo[0] = path.join(process.cwd(), compo[0]);
|
||||||
|
entries[key] = compo;
|
||||||
|
});
|
||||||
|
|
||||||
|
cooking.set({
|
||||||
|
entry: entries,
|
||||||
|
dist: './lib',
|
||||||
|
clean: false,
|
||||||
|
format: 'cjs',
|
||||||
|
extends: ['vue2'],
|
||||||
|
minimize: false,
|
||||||
|
externals: config.externals,
|
||||||
|
alias: config.alias
|
||||||
|
});
|
||||||
|
|
||||||
|
cooking.add('output.filename', '[name]/index.js');
|
||||||
|
cooking.add('loader.js.exclude', config.jsexclude);
|
||||||
|
module.exports = cooking.resolve();
|
|
@ -0,0 +1,18 @@
|
||||||
|
var cooking = require('cooking');
|
||||||
|
var config = require('./config');
|
||||||
|
|
||||||
|
cooking.set({
|
||||||
|
entry: './src/index.js',
|
||||||
|
dist: './lib',
|
||||||
|
clean: false,
|
||||||
|
format: 'umd',
|
||||||
|
moduleName: 'ELEMENT',
|
||||||
|
extends: ['vue2'],
|
||||||
|
alias: config.alias,
|
||||||
|
externals: { vue: config.externals.vue }
|
||||||
|
});
|
||||||
|
|
||||||
|
cooking.add('output.filename', 'index.js');
|
||||||
|
cooking.add('loader.js.exclude', config.jsexclude);
|
||||||
|
|
||||||
|
module.exports = cooking.resolve();
|
|
@ -1,8 +1,8 @@
|
||||||
var cooking = require('cooking');
|
var cooking = require('cooking');
|
||||||
var path = require('path');
|
var config = require('./config');
|
||||||
var md = require('markdown-it')();
|
var md = require('markdown-it')();
|
||||||
var Components = require('../components.json');
|
var Components = require('../components.json');
|
||||||
var striptags = require('../examples/utils/strip-tags');
|
var striptags = require('./strip-tags');
|
||||||
|
|
||||||
function convert(str) {
|
function convert(str) {
|
||||||
str = str.replace(/(&#x)(\w{4});/gi, function($0) {
|
str = str.replace(/(&#x)(\w{4});/gi, function($0) {
|
||||||
|
@ -26,6 +26,7 @@ cooking.set({
|
||||||
chunk: true,
|
chunk: true,
|
||||||
extractCSS: true,
|
extractCSS: true,
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
|
alias: config.alias,
|
||||||
extends: ['vue2', 'lint'],
|
extends: ['vue2', 'lint'],
|
||||||
postcss: function(webapck) {
|
postcss: function(webapck) {
|
||||||
return [
|
return [
|
||||||
|
@ -99,12 +100,6 @@ var wrap = function(render) {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
cooking.add('resolve.alias', {
|
|
||||||
'main': path.join(__dirname, '../src'),
|
|
||||||
'packages': path.join(__dirname, '../packages'),
|
|
||||||
'examples': path.join(__dirname, '../examples')
|
|
||||||
});
|
|
||||||
|
|
||||||
var externals = {};
|
var externals = {};
|
||||||
Object.keys(Components).forEach(function(key) {
|
Object.keys(Components).forEach(function(key) {
|
||||||
externals[`packages/${key}/style.css`] = 'null';
|
externals[`packages/${key}/style.css`] = 'null';
|
|
@ -0,0 +1,23 @@
|
||||||
|
set -e
|
||||||
|
echo "Enter release version: "
|
||||||
|
read VERSION
|
||||||
|
|
||||||
|
read -p "Releasing $VERSION - are you sure? (y/n)" -n 1 -r
|
||||||
|
echo # (optional) move to a new line
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
echo "Releasing $VERSION ..."
|
||||||
|
|
||||||
|
# build
|
||||||
|
VERSION=$VERSION npm run dist
|
||||||
|
|
||||||
|
# commit
|
||||||
|
git add -A
|
||||||
|
git commit -m "[build] $VERSION"
|
||||||
|
npm version $VERSION --message "[release] $VERSION"
|
||||||
|
|
||||||
|
# publish
|
||||||
|
git push origin refs/tags/v$VERSION
|
||||||
|
git push
|
||||||
|
npm publish --tag next
|
||||||
|
fi
|
22
package.json
22
package.json
|
@ -5,19 +5,21 @@
|
||||||
"main": "lib/element-ui.common.js",
|
"main": "lib/element-ui.common.js",
|
||||||
"files": [
|
"files": [
|
||||||
"lib",
|
"lib",
|
||||||
"src"
|
"src",
|
||||||
|
"packages"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:file": "node bin/iconInit.js & node bin/build-entry.js",
|
"build:file": "node build/bin/iconInit.js & node build/bin/build-entry.js",
|
||||||
"dev": "npm run bootstrap && npm run build:file && cooking watch -c scripts/cooking.demo.js -p",
|
"dev": "npm run bootstrap && npm run build:file && cooking watch -c build/cooking.demo.js -p",
|
||||||
"dist": "npm run lint && npm run build:file && del -f lib && cooking build -c scripts/cooking.conf.js,scripts/cooking.common.js,scripts/cooking.component.js -p && npm run build:theme",
|
"dist": "npm run lint && npm run build:file && del -f lib && cooking build -c build/cooking.conf.js,build/cooking.common.js,build/cooking.component.js -p && npm run build:utils && npm run build:theme",
|
||||||
"dist:all": "node bin/build-all.js && npm run build:theme",
|
"dist:all": "node build/bin/build-all.js && npm run build:theme",
|
||||||
"build:theme": "gulp build --gulpfile packages/theme-default/gulpfile.js && cp-cli packages/theme-default/lib lib/theme-default",
|
"build:theme": "gulp build --gulpfile packages/theme-default/gulpfile.js && cp-cli packages/theme-default/lib lib/theme-default",
|
||||||
"deploy": "npm run build:file && cooking build -c scripts/cooking.demo.js -p && echo element.eleme.io>>examples/element-ui/CNAME && gh-pages -d examples/element-ui --remote eleme && del examples/element-ui",
|
"deploy": "npm run build:file && cooking build -c build/cooking.demo.js -p && echo element.eleme.io>>examples/element-ui/CNAME && gh-pages -d examples/element-ui --remote eleme && del examples/element-ui",
|
||||||
"bootstrap": "npm i && lerna bootstrap --loglevel=error",
|
"bootstrap": "npm i && lerna bootstrap",
|
||||||
"pub": "npm run dist && kp",
|
"pub": "sh build/release.sh",
|
||||||
"pub:all": "npm run dist:all && lerna publish",
|
"pub:all": "npm run dist:all && lerna publish",
|
||||||
"lint": "eslint src/** packages/** scripts/** bin/** --ext .js,.vue --ignore-pattern node_modules"
|
"build:utils": "babel src/utils --out-dir lib/utils",
|
||||||
|
"lint": "eslint src/** packages/** build/** --ext .js,.vue --quiet"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -33,6 +35,7 @@
|
||||||
"url": "https://github.com/elemefe/element/issues"
|
"url": "https://github.com/elemefe/element/issues"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"babel-cli": "^6.14.0",
|
||||||
"babel-core": "^6.14.0",
|
"babel-core": "^6.14.0",
|
||||||
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
"babel-helper-vue-jsx-merge-props": "^2.0.0",
|
||||||
"babel-loader": "^6.2.5",
|
"babel-loader": "^6.2.5",
|
||||||
|
@ -56,7 +59,6 @@
|
||||||
"html-webpack-plugin": "^2.22.0",
|
"html-webpack-plugin": "^2.22.0",
|
||||||
"json-loader": "^0.5.4",
|
"json-loader": "^0.5.4",
|
||||||
"json-templater": "^1.0.4",
|
"json-templater": "^1.0.4",
|
||||||
"kanpai": "^0.7.0",
|
|
||||||
"lerna": "2.0.0-beta.18",
|
"lerna": "2.0.0-beta.18",
|
||||||
"markdown-it": "^6.1.1",
|
"markdown-it": "^6.1.1",
|
||||||
"markdown-it-container": "^2.0.0",
|
"markdown-it-container": "^2.0.0",
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
var cooking = require('cooking');
|
|
||||||
var path = require('path');
|
|
||||||
var Components = require('../components.json');
|
|
||||||
var entries = {};
|
|
||||||
|
|
||||||
Object.keys(Components).forEach(function(key) {
|
|
||||||
const compo = Components[key];
|
|
||||||
|
|
||||||
compo[0] = path.join(process.cwd(), compo[0]);
|
|
||||||
entries[key] = compo;
|
|
||||||
});
|
|
||||||
|
|
||||||
cooking.set({
|
|
||||||
entry: entries,
|
|
||||||
dist: './lib',
|
|
||||||
clean: false,
|
|
||||||
format: 'cjs',
|
|
||||||
extends: ['vue2'],
|
|
||||||
minimize: false,
|
|
||||||
alias: {
|
|
||||||
main: path.join(__dirname, '../src'),
|
|
||||||
packages: path.join(__dirname, '../packages'),
|
|
||||||
examples: path.join(__dirname, '../examples')
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
cooking.add('output.filename', '[name]/index.js');
|
|
||||||
|
|
||||||
var externals = {};
|
|
||||||
Object.keys(Components).forEach(function(key) {
|
|
||||||
externals[`packages/${key}/index.js`] = `element-ui/lib/${key}`;
|
|
||||||
externals[`packages/${key}/style.css`] = `element-ui/lib/${key}/style.css`;
|
|
||||||
externals['main/utils/clickoutside'] = 'element-ui/src/utils/clickoutside';
|
|
||||||
externals['main/utils/popper'] = 'element-ui/src/utils/popper';
|
|
||||||
externals['main/utils/vue-popper'] = 'element-ui/src/utils/vue-popper';
|
|
||||||
});
|
|
||||||
|
|
||||||
cooking.add('externals', Object.assign({
|
|
||||||
vue: {
|
|
||||||
root: 'Vue',
|
|
||||||
commonjs: 'vue',
|
|
||||||
commonjs2: 'vue',
|
|
||||||
amd: 'vue'
|
|
||||||
}
|
|
||||||
}, externals));
|
|
||||||
|
|
||||||
cooking.add('loader.js.exclude', /node_modules|utils\/popper\.js|util\/fecha.\js/);
|
|
||||||
module.exports = cooking.resolve();
|
|
|
@ -1,28 +0,0 @@
|
||||||
var cooking = require('cooking');
|
|
||||||
var path = require('path');
|
|
||||||
|
|
||||||
cooking.set({
|
|
||||||
entry: './src/index.js',
|
|
||||||
dist: './lib',
|
|
||||||
clean: false,
|
|
||||||
format: 'umd',
|
|
||||||
moduleName: 'ELEMENT',
|
|
||||||
extends: ['vue2'],
|
|
||||||
alias: {
|
|
||||||
main: path.join(__dirname, '../src'),
|
|
||||||
packages: path.join(__dirname, '../packages'),
|
|
||||||
examples: path.join(__dirname, '../examples')
|
|
||||||
},
|
|
||||||
externals: {
|
|
||||||
vue: {
|
|
||||||
root: 'Vue',
|
|
||||||
commonjs: 'vue',
|
|
||||||
commonjs2: 'vue',
|
|
||||||
amd: 'vue'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
cooking.add('output.filename', 'index.js');
|
|
||||||
cooking.add('loader.js.exclude', /node_modules|utils\/popper\.js|util\/fecha.\js/);
|
|
||||||
module.exports = cooking.resolve();
|
|
Loading…
Reference in New Issue