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

Angular 14如何传递并使用自定义命令行标志

在Angular中通过命令行传递并捕获自定义参数

方法一:环境变量 + Angular构建配置(简洁方案)

1. 调整启动命令

在启动命令前添加环境变量:

TEST="ABC" ng serve -ssl true --host test.com

Windows系统需改为:

set TEST=ABC && ng serve -ssl true --host test.com

2. 修改angular.json配置

打开项目根目录的angular.json,找到architect -> build -> options,添加define节点将环境变量注入应用:

"build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
    // 保留原有配置
    "define": {
      "process.env.TEST": JSON.stringify(process.env.TEST)
    }
  }
}

3. 在environment.ts中获取参数

修改src/environments/environment.ts,直接读取注入的变量:

export const environment = {
  production: false,
  test: process.env.TEST || '默认值'
};

方法二:自定义Webpack扩展(灵活方案,支持多参数)

1. 安装依赖

npm install @angular-builders/custom-webpack yargs --save-dev

2. 替换Angular构建器

修改angular.json中的build和serve节点,替换为自定义Webpack构建器:

"build": {
  "builder": "@angular-builders/custom-webpack:browser",
  "options": {
    "customWebpackConfig": {
      "path": "./webpack.extra.js"
    },
    // 保留原有配置
  }
},
"serve": {
  "builder": "@angular-builders/custom-webpack:dev-server",
  // 保留原有配置
}

3. 编写自定义Webpack配置

在项目根目录创建webpack.extra.js,通过DefinePlugin注入命令行参数:

const webpack = require('webpack');
const argv = require('yargs').argv;

module.exports = {
  plugins: [
    new webpack.DefinePlugin({
      'process.env.TEST': JSON.stringify(argv.test || '默认值')
    })
  ]
};

4. 调整启动命令

直接传递--test参数:

ng serve -ssl true --host test.com --test="ABC"

5. 在environment.ts中读取参数

同方法一,直接读取变量即可:

export const environment = {
  production: false,
  test: process.env.TEST || '默认值'
};

注意事项

  • 修改angular.json后需重启ng serve,配置才会生效
  • 若需传递多个参数,可在webpack.extra.js中添加更多process.env.XXX节点

内容的提问来源于stack exchange,提问作者GMAC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:54:23