【发布时间】: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 dev和npm run dev --env=foo在大多数情况下都同样适用。 -
@msanford 我明白了。问题是我想要
dev和prod构建的3 个变体。我认为访问命令行参数会更好,而不是制作 6 个配置文件。但归根结底,我想这没什么大不了的:)
标签: javascript webpack vue.js