从我读过的所有内容中,我的理解是Webpacker和Sprockets可以共存,并且在Webpacker中编译的库(例如,jquery)可以通过全局变量提供给Sprokets.
但是我在资产管道中的所有jquery都引发了ReferenceError:无法找到变量:$
我误解了,或者我的代码中是否有错误?
我添加了jquery
纱添加jquery
并在environment.Js中分配变量
const { environment } = require('@rails/webpacker');const webpack = require('webpack');environment.plugins.prepend('ProvIDe',new webpack.ProvIDePlugin({ $: 'jquery',jquery: 'jquery'}));module.exports = environment;
这工作:
#JavaScript/packs/application.Js$(function () { console.log('Hello World from Webpacker via Jquery');});
这不
#assets/JavaScripts/application.Js$(function () { console.log('Hello World from Sprockets via Jquery');});# ReferenceError: Can't find variable: $
预期的行为是什么?
解决方法 最后,从webpacker中将jquery暴露给全局变得相对容易.但是找到关于如何做到这一点的文档非常困难!希望这可以节省别人的搜索.添加expose-loader
yarn add expose-loader -D
然后将以下配置添加到config / webpack / environment.Js
environment.loaders.append('expose',{ test: require.resolve('jquery'),use: [{ loader: 'expose-loader',options: '$' },{ loader: 'expose-loader',options: 'jquery',}]})
然后我能够从资产管道中删除jquery,重新启动服务器,并且链轮内的所有剩余jquery函数继续按预期运行.
总结以上是内存溢出为你收集整理的ruby-on-rails – 如何使用Webpacker为链轮提供jquery?全部内容,希望文章能够帮你解决ruby-on-rails – 如何使用Webpacker为链轮提供jquery?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)