我将Webpacker gem与Rails 5.2一起使用,并希望通过设置NODE_ENV全局变量来访问前端环境。
这是我的config / webpack / environment.js文件:
const { environment } = require('@rails/webpacker')
// Bootstrap 3 has a dependency over jQuery:
const webpack = require('webpack')
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
)
module.exports = environment
我看到我需要将以下插件添加到webpack才能访问前端环境:
new webpack.DefinePlugin({
'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
但是我不知道如何添加它...我尝试了很多选项,包括下面的行,而且总是行不通,或者破坏了jQuery(即Uncaught ReferenceError:未定义jQuery):< / p>
environment.plugins.prepend('Provide',
new webpack.DefinePlugin({
'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
)
任何帮助都将受到欢迎,我已经为此努力了数小时。 非常感谢!!
编辑
我找到了解决方案...事实证明,您只需要在前面/后面添加一个新插件,并为其提供与其他插件不同的名称即可。现在我的config / webpack / environment.js看起来像这样:
const { environment } = require('@rails/webpacker')
// Bootstrap 3 has a dependency over jQuery:
const webpack = require('webpack')
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
)
environment.plugins.prepend('env',
new webpack.DefinePlugin({
'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
)
module.exports = environment
我现在可以从每个js / jsx文件访问NODE_ENV !!