使用Rails向Webpack添加插件

hwazgwia  于 2022-12-04  发布在  Webpack
关注(0)|答案(1)|浏览(154)

我在Rails 5.2中使用Webpacker gem,并希望通过设置一个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):

environment.plugins.prepend('Provide',
  new webpack.DefinePlugin({
    'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
  })
)
bvuwiixz

bvuwiixz1#

事实证明,你只需要在前面添加一个新的插件,并给予它一个不同于其他插件的名字。现在我的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!!
这个答案是在CC BY-SA 4.0下由OP oruhtraedit的形式发布的问题添加插件到带有Rails的Webpack。

相关问题