|
|
const shelljs = require('shelljs');
|
|
|
const path = require('path');
|
|
|
|
|
|
const distDir = path.join(__dirname, '../dist/node');
|
|
|
|
|
|
shelljs.rm('-rf', distDir);
|
|
|
shelljs.mkdir('-p', distDir);
|
|
|
|
|
|
const cpPaths = [
|
|
|
'.npmrc',
|
|
|
'process.json',
|
|
|
'Dockerfile',
|
|
|
'yarn.lock',
|
|
|
'package.json',
|
|
|
'server',
|
|
|
'manifest.json'
|
|
|
];
|
|
|
|
|
|
new Promise(resolve => { // 加载manifest.json文件
|
|
|
resolve();
|
|
|
}).then(() => { // 拷贝node代码
|
|
|
cpPaths.forEach(p => {
|
|
|
let dist = distDir;
|
|
|
let file = p;
|
|
|
|
|
|
if (typeof p === 'object') {
|
|
|
dist = path.join(dist, p[1]);
|
|
|
file = p[0];
|
|
|
|
|
|
if (!shelljs.test('-e', dist)) {
|
|
|
shelljs.mkdir('-p', dist);
|
|
|
}
|
|
|
}
|
|
|
shelljs.cp('-R', path.join(__dirname, '../', file), dist);
|
|
|
});
|
|
|
}).then(() => { // 安装依赖和清理node_modules
|
|
|
|
|
|
shelljs.cd(distDir);
|
|
|
if (shelljs.exec('yarn --production=true').code !== 0) {
|
|
|
throw 'yarn install faild';
|
|
|
}
|
|
|
}).catch(error => {
|
|
|
console.error(`error:${error}`);
|
|
|
return process.exit(1); //eslint-disable-line
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...
|
...
|
|