错误 'NODE_ENV' 未定义 no-undef eslint
error 'NODE_ENV' is not defined no-undef eslint
带有 webpack 2 的应用程序,使用 eslint。
我正在使用 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 error 'NODE_ENV' is not defined no-undef” .因为它不知道 NODE_ENV 会被 webpack 替换成一些其他的文本。
如果我禁用该规则,一切正常,但当然,我不想禁用该规则。
有人遇到过类似的问题或知道如何解决吗?谢谢!
你可以使用这个:
new webpack.EnvironmentPlugin([ 'NODE_ENV' ])
在您的代码中:
if (process.env.NODE_ENV === 'development') ...
这假设您的 Webpack 配置中的 NODE_ENV
变量是 process.env.NODE_ENV
的副本(换句话说,您通过环境变量设置活动的 Node 环境,而不是,比方说,配置文件)。
如果不是这样,你可以使用这个:
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(NODE_ENV)
}),
带有 webpack 2 的应用程序,使用 eslint。
我正在使用 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 error 'NODE_ENV' is not defined no-undef” .因为它不知道 NODE_ENV 会被 webpack 替换成一些其他的文本。 如果我禁用该规则,一切正常,但当然,我不想禁用该规则。
有人遇到过类似的问题或知道如何解决吗?谢谢!
你可以使用这个:
new webpack.EnvironmentPlugin([ 'NODE_ENV' ])
在您的代码中:
if (process.env.NODE_ENV === 'development') ...
这假设您的 Webpack 配置中的 NODE_ENV
变量是 process.env.NODE_ENV
的副本(换句话说,您通过环境变量设置活动的 Node 环境,而不是,比方说,配置文件)。
如果不是这样,你可以使用这个:
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(NODE_ENV)
}),