如何在package.json脚本中添加--doc条件标志以按需执行文档构建?
修改方案
方法1:原生Shell条件判断(类Unix环境适用)
直接在build:lib脚本中加入Shell条件判断,检测是否传入--doc参数:
"scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "build:doc": "compodoc -p projects/asc-shared-libs/tsconfig.lib.json -d dist/asc-shared-libs/documentation", "build:sass": "sass projects/asc-shared-libs/styles.scss projects/asc-shared-libs/styles/styles.css", "build:lib": "npm run build:sass && ng-packagr -p projects/asc-shared-libs/ng-package.json && if [ \"$*\" = \"--doc\" ]; then npm run build:doc; fi && ng serve" }
使用方式:
- 默认执行(不构建文档):
npm run build:lib - 构建文档:
npm run build:lib -- --doc
方法2:跨平台兼容方案(推荐,支持Windows/macOS/Linux)
如果需要跨平台运行,先安装依赖:
npm install cross-env minimist --save-dev
在项目根目录创建build-lib.js脚本文件:
const { execSync } = require('child_process'); const args = require('minimist')(process.argv.slice(2)); // 执行基础构建步骤 execSync('npm run build:sass && ng-packagr -p projects/asc-shared-libs/ng-package.json', { stdio: 'inherit' }); // 检测--doc参数,存在则执行文档构建 if (args.doc) { execSync('npm run build:doc', { stdio: 'inherit' }); } // 启动服务 execSync('ng serve', { stdio: 'inherit' });
修改package.json中的build:lib脚本:
"scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "build:doc": "compodoc -p projects/asc-shared-libs/tsconfig.lib.json -d dist/asc-shared-libs/documentation", "build:sass": "sass projects/asc-shared-libs/styles.scss projects/asc-shared-libs/styles/styles.css", "build:lib": "node build-lib.js" }
使用方式:
- 默认执行(不构建文档):
npm run build:lib - 构建文档:
npm run build:lib -- --doc
内容的提问来源于stack exchange,提问作者Shah Rukh
相关产品推荐
相关产品推荐

