我在Angular工作区中有6个项目,我必须构建每个项目。而不是在我的package.json中为每个项目写六行,例如: “ build_a”:“ npm运行构建” “ buiild_b”:“ npm运行build b”
我只想这样创建一行:
“ build_app”:“ npm运行内部版本名称=” aaa“”
我该怎么做?
答案 0 :(得分:0)
您可以依靠环境变量来发现此类名称。
但这取决于您所使用的操作系统以及如何定义环境变量。
"scripts":{
"build:a":"cross-env NAME=a npm run build",
"build:b":"cross-env NAME=b npm run build",
"build:c":"cross-env NAME=c npm run build",
"build":"browserify src/main.js -o build.js"
}
您将最终获得一个或多或少像这样的脚本部分。
答案 1 :(得分:0)
最后,我找到了使用node.js脚本的解决方案:build-subproject.js。
const { exec } = require('child_process');
const args = process.argv.slice(2).join(' ');
console.log(`RUNNING build with args: ${args}`);
exec(
`ng build ${args} && cd dist/${args} && npm pack `,
(error, stdout) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.info(`stdout: ${stdout}`);
}
);
在package.json中,
"build-subproject": "node ./build-subproject.js",
然后运行npm run build-subproject my-project-name