2

我正在使用 React Boilerplate,并.env在根目录中有一个单独的来表示我的服务器是开发、登台还是生产。但是,我意识到对于我的设置,这不是最好的路线。然后我了解到,在 package.json 中有一段代码实际上显示了生产环境变量,如下所示:

"babel": {
    "env": {
        "production": {
            "only": [
                "app"
            ],
            "plugins": [
                "transform-react-remove-prop-types",
                "transform-react-constant-elements",
                "transform-react-inline-elements"
            ]
        },
        "test": {
            "plugins": [
                "transform-es2015-modules-commonjs",
                "dynamic-import-node"
            ]
        }
    }
}

从这里,我想添加开发和登台,但我不断收到一个 webpack 错误,上面写着

Unknown option: C:\folders\blah\project\package.json.development.VARIABLE.
A common cause of this error is the presence of a configuration options 
object without the corresponding preset name. Example:

Invalid: { presets: [{option: value}] }
Valid: { presets: [['presetName', {option: value}]] }

我的补充就像

"development": {
    "VARIABLE": "value"
}

任何想法?

4

1 回答 1

0

此配置纯粹用于 babel,因此 中的babel字段package.json与您在 a 中使用该配置相同.babelrc。Babel 验证所有选项并且它没有VARIABLE选项(选项的完整列表)。

Babel 的env选项允许您为不同的环境(NODE_ENVBABEL_ENV)使用不同的预设/插件,因为没有更好的方法可以根据 JSON 文件中的环境有条件地定义选项。在 babel 7 中,您将能够使用 JavaScript 文件 ( .babelrc.js),它为您提供 JavaScript 的全部功能来有条件地定义和组合任何选项(包括检查环境变量)。

如果您想将环境变量用于自定义配置,则必须自己处理它们。是使用.env文件还是手动指定环境变量取决于您。

于 2017-07-20T19:12:54.427 回答