You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:42:21