小编oru*_*tra的帖子

使用 Rails 向 Webpack 添加插件

我正在将 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
Run Code Online (Sandbox Code Playgroud)

我看到我需要在 webpack 中添加以下插件才能访问前端的环境:

  new webpack.DefinePlugin({
    'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
  })
Run Code Online (Sandbox Code Playgroud)

但我不知道如何添加它......我尝试了很多选项,包括下面的行,但它总是不起作用,或者破坏 jQuery(即 Uncaught ReferenceError: jQuery is not defined):

environment.plugins.prepend('Provide',
  new webpack.DefinePlugin({
    'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
  })
)
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助,我已经为此苦苦挣扎了几个小时..非常感谢!


编辑

我找到了解决方案......原来你只需要预先/附加一个新插件并给它一个与其他插件不同的名称。现在我的 config/webpack/environment.js 看起来像这样:

const { environment } = require('@rails/webpacker')

// Bootstrap 3 has …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails webpack

5
推荐指数
1
解决办法
2206
查看次数

标签 统计

javascript ×1

ruby-on-rails ×1

webpack ×1