如何使用 rails 6 安装 Exposure-loader 3.0.0?

问题描述

我仍然对 jQuery 有一些依赖。对于 Rails 6 和 Webpack,需要公开 jquery,否则会发生错误。我一直在使用expose-loader 1.0.3 一段时间没有问题...现在可以使用1.0.3 没有问题。但是,如果我升级到 Exposure-loader 2.0.0 或 3.0.0,我会得到:

ERROR in ./node_modules/jquery/dist/jquery.js
Module build Failed (from ./node_modules/expose-loader/dist/cjs.js):
TypeError: this.getoptions is not a function
    at Object.loader (/Users/drama/Sites/FlightRecord/node_modules/expose-loader/dist/index.js:19:24)
ℹ 「wdm」: Failed to compile.

使用expose-loader 1.0.3,我只需在environment.js 中添加以下内容来公开jQuery:

environment.loaders.append("jquery",{
  test: require.resolve("jquery"),use: [
    { loader: "expose-loader",options: { exposes: ["$","jQuery"] } }
  ],});

如果与expose-loader >= 2 一起使用,同样的语法会导致上面的错误。所以,看起来不愉快的代码在于environment.loaders.append 调用。我已经阅读了更改日志、文档、stackoverflow 和博客……但是,我尝试的任何内容似乎都无法满足新的公开加载程序。

现在,我回到只使用 1.0.3...但我想克服这个问题并使 3.0.0 工作。

如何在 Rails 6.1 中使用公开加载器 3.0.0 为 Webpacker 公开 jQuery?

我的 environment.js 文件包含以下内容

environment.plugins.append('Provide',new webpack.ProvidePlugin({
    Rails: ['@rails/ujs'],$: 'jquery',jQuery: 'jquery','window.jQuery': 'jquery',Popper: ['popper.js','default']
  })
)

environment.loaders.append("jquery",});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)