hel*_*ion 5 ruby-on-rails webpack yarnpkg ruby-on-rails-6.1 expose-loader
我仍然对 jQuery 有一些依赖。对于 Rails 6 和 Webpack,需要公开 jquery,否则会发生错误。我已经使用 Exposure-loader 1.0.3 一段时间了,没有出现任何问题,但是,如果我升级到 Exposure-loader 2.0.0 或 3.0.0,我会得到:
\nERROR in ./node_modules/jquery/dist/jquery.js\nModule build failed (from ./node_modules/expose-loader/dist/cjs.js):\nTypeError: this.getOptions is not a function\n at Object.loader (/Users/drama/Sites/FlightRecord/node_modules/expose-loader/dist/index.js:19:24)\n\xe2\x84\xb9 \xef\xbd\xa2wdm\xef\xbd\xa3: Failed to compile.\nRun Code Online (Sandbox Code Playgroud)\n有一些关于此问题的博客文章,但所有内容都围绕environment.js 中关联语法的格式设置...我尝试了几种不同的语法样式,它们都会导致相同的错误。
\n使用 hide-loader 1.0.3,我只需在environment.js 中添加以下内容即可公开 jQuery:
\nenvironment.loaders.append("jquery", {\n test: require.resolve("jquery"),\n use: [\n { loader: "expose-loader", options: { exposes: ["$", "jQuery"] } }\n ],\n});\nRun Code Online (Sandbox Code Playgroud)\n如果与 hide-loader >= 2 一起使用,相同的语法会导致上述错误。因此,令人不满意的代码似乎位于environment.loaders.append 调用中。我已经阅读了变更日志、文档、stackoverflow 和博客...但是,我所做的一切似乎都无法满足新的公开加载程序。
\n现在,我又回到只使用 1.0.3...但我想克服这个问题并让 3.0.0 正常工作。
\n如何使用 hide-loader 3.0.0 在 Rails 6.1 中为 Webpacker 公开 jQuery?
\n我的environment.js 文件包含以下内容:
\nenvironment.plugins.append('Provide',\n new webpack.ProvidePlugin({\n Rails: ['@rails/ujs'],\n $: 'jquery',\n jQuery: 'jquery',\n 'window.jQuery': 'jquery',\n Popper: ['popper.js', 'default']\n })\n)\n\nenvironment.loaders.append("jquery", {\n test: require.resolve("jquery"),\n use: [\n { loader: "expose-loader", options: { exposes: ["$", "jQuery"] } }\n ],\n});\nRun Code Online (Sandbox Code Playgroud)\n
小智 0
您不再需要 Exposure-loader 来加载 jQuery。
添加到 config/webpack/environment.js
const webpack = require('webpack')
environment.plugins.append(
"Provide",
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |