0

我已经配置了一个带有 Webpack 的 angular2 项目作为我的模块捆绑器。我一切正常,现在我想把它带到现实世界,在那里我想将主题和环境作为参数传递给我的 NPM 命令。下面是我当前的 package.json 脚本配置。

"scripts": {
    "start": "webpack-dev-server",
    "test": "karma start ./karma.conf.js",
    "lint": "ng lint",
    "e2e": "protractor ./protractor.conf.js",
    "build": "webpack"
  },

为了进一步解释,当我执行“npm start --theme=themeA --environment=UAT”时,我应该能够访问我的 ts 文件(比如 config.ts)中的“theme”和“environment”的值。现在我已经硬编码了这些值,所以当我在 config.ts 中将 themeA 更改为 themeB 时,生成的输出是针对 themeB 的。但我希望将其作为命令行驱动。
因此,简而言之,
1. 如何将自定义参数传递给 NPM 命令。
2.如何访问js中的值。
注意:我想对 npm start 和 npm build 都这样做。

4

1 回答 1

0

您应该使用“双破折号”作为命令选项的结尾的主要问题。请参阅此处的答案 -

我做了下一个:

scripts": {
    //this is for nodejs memory limit
    "build": "node ./tools/bundle --max_old_space_size=4096",
    //this arguments will be thrown to the start.js
    "start": "node ./tools/start -- verbose release no-compile",
}

start.js 中的控制选项(参数):

var options = {
    release: process.argv.indexOf('release') !== -1,
    noCompile: process.argv.indexOf('no-compile') !== -1,
    start: process.argv.indexOf('start') !== -1,
    verbose: process.argv.indexOf('verbose') !== -1,
};
于 2017-03-24T23:01:25.863 回答