首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rails 6 webpacker中添加jquery第三方插件

如何在rails 6 webpacker中添加jquery第三方插件
EN

Stack Overflow用户
提问于 2019-02-27 20:00:41
回答 5查看 14.4K关注 0票数 18

我知道这很简单,但随着Rails6的更新,在Rails6中有了新的语法来管理javascript资产,这是由webpacker维护的。

代码语言:javascript
复制
//application.js
require("@rails/ujs") //.start()
require("turbolinks").start()
require("@rails/activestorage").start()
require('jquery').start()
require('jquery_ujs').start()
require('bootstrap-daterangepicker').start()
require("custom/custom").start()
require("bootstrap").start()
require("channels")

我可以添加custom/custom,但是bootstrap和jquery不起作用,我已经通过npm安装了jquery和bootstrap

EN

回答 5

Stack Overflow用户

发布于 2019-05-15 21:51:42

运行下面的命令来添加jQuery。

代码语言:javascript
复制
$ yarn add jquery

config/webpack/environment.js中添加以下代码

代码语言:javascript
复制
const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  })
)

在application.js文件中需要jquery。

代码语言:javascript
复制
require('jquery')

不再需要添加jquery-rails gem!

票数 26
EN

Stack Overflow用户

发布于 2019-02-27 21:49:32

要解决jquery第三方插件问题,请通过yarn添加jquery

代码语言:javascript
复制
yarn add jquery

为了在Rails6应用程序中添加jquery支持,我们首先需要添加以下配置

代码语言:javascript
复制
# app/config/webpack/environment.js
const {environment} = require('@rails/webpacker');

const webpack = require('webpack');
environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery' # or if its not work specify path `'jquery/src/jquery'` which node_modules path for jquery
}));

module.exports = environment;

用于在app/javascripts/packs/application.js中导入任何与jquery相关的插件

使用下面的说明

代码语言:javascript
复制
import 'bootstrap/dist/js/bootstrap';
import 'bootstrap-daterangepicker/daterangepicker'

使用适用于jQuery的expose-loader更新

代码语言:javascript
复制
yarn add expose-loader

然后将其添加到config/webpack/environment.js ment.js中

代码语言:javascript
复制
   environment.loaders.append('jquery', {
      test: require.resolve('jquery'),
      use: [{
        loader: 'expose-loader',
        options: '$',
      }, {
        loader: 'expose-loader',
        options: 'jQuery',
      }],
    });
    module.exports = environment;
票数 16
EN

Stack Overflow用户

发布于 2020-06-26 15:34:18

显然expose-loader 1.0.0有不同的格式:

代码语言:javascript
复制
environment.loaders.append('jquery', {
  test: require.resolve('jquery'),
  rules: [
    {
      loader: 'expose-loader',
      options: {
        exposes: ['$', 'jQuery'],
      },
    },
  ],
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54905026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档