【问题标题】:Accessing command line arguments in runtime在运行时访问命令行参数
【发布时间】:2017-11-13 14:56:13
【问题描述】:

我正在使用下面的Vue SPA boilerplate,它基于 webpack。

当应用程序在开发服务器中运行或作为部署版本运行时,我可以使用process.env.NODE_ENV 来确定它是开发版本还是生产版本。到现在为止还挺好。

我追求的是一种传递命令行参数的方法,这些参数可以以相同的方式解析,即npm run dev --foo=1,并使用类似process.argv.slice(2).foo 的方式获取它。

我尝试过使用配置文件中的process.argv 访问命令行参数和装饰配置文件。

我还尝试通过“env”--env.foo 传递参数并将节点模块导出更改为类似

module.exports = env => {
    // make use of env
}

没有成功。

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 所以您正在尝试根据命令行参数更改单个配置文件的内容?
  • @msanford 是的,process.env 上基于命令行参数的另一个变量就足够了
  • 这类事情的通常模式是维护多个完整的配置文件,并在加载时在它们之间进行选择。我还要补充一点,虽然您可能出于人体工程学原因需要命令行标志,但 env="foo" npm run devnpm run dev --env=foo 在大多数情况下都同样适用。
  • @msanford 我明白了。问题是我想要devprod 构建的3 个变体。我认为访问命令行参数会更好,而不是制作 6 个配置文件。但归根结底,我想这没什么大不了的:)

标签: javascript webpack vue.js


【解决方案1】:

这类事情的通常模式是维护多个完整的配置文件,并在加载它们时在它们之间进行选择,尽管可以说不这样做更简洁。

我还要补充一点,虽然出于人体工程学的原因您可能需要命令行标志,

env="foo" npm run dev

npm run dev --env=foo

大多数情况下都同样适用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-30
    • 2014-01-30
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2022-01-19
    • 2012-09-01
    相关资源
    最近更新 更多