gpt4 book ai didi

javascript - 错误 'NODE_ENV' 未定义 no-undef eslint

转载 作者:行者123 更新时间:2023-11-29 23:45:48 27 4
gpt4 key购买 nike

使用 eslint 的 webpack 2 应用程序。

我正在使用 webpack 的 DefinePlugin 在编译时替换 NODE_ENV 变量。我正在使用 eslint 进行代码格式化。

这就是我在 webpack.config.js 中定义要替换的变量的方式,

var plugins = [

new webpack.DefinePlugin({
NODE_ENV:JSON.stringify(NODE_ENV)
}),

new webpack.ProvidePlugin({
moment: 'moment',
_: 'lodash',
}),
];

这是 webpack 配置中的 eslint 加载器:

{
test: /\.jsx?$/, // both .js and .jsx
loader: 'eslint-loader',
include: path.resolve(process.cwd(), 'src'),
enforce: 'pre',
options: {
fix: true,
},
},

这是访问代码中变量的方式:`

if (NODE_ENV === "development") middleware = [...middleware, createLogger()]

问题:

因为我启用了 eslint 规则“no-undef”,当我尝试启动应用程序时,eslint 运行并给出错误“9:5 错误‘NODE_ENV’未定义 no-undef”。因为它不知道 NODE_ENV 会被 webpack 替换成一些其他的文本。如果我禁用该规则,一切正常,但当然,我不想禁用该规则。

谁遇到过类似的问题或者知道怎么解决?谢谢!

最佳答案

你可以使用这个:

new webpack.EnvironmentPlugin([ 'NODE_ENV' ])

在你的代码中:

if (process.env.NODE_ENV === 'development') ...

这假设您的 Webpack 配置中的 NODE_ENV 变量是 process.env.NODE_ENV 的副本(换句话说,您通过环境变量,而不是配置文件)。

如果不是这样,你可以使用这个:

new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(NODE_ENV)
}),

关于javascript - 错误 'NODE_ENV' 未定义 no-undef eslint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231345/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com