首页 > 解决方案 > Rails 6 Webpacker Uncaught TypeError: $(...).slick is not a function

问题描述

我对 Rails 6 和 Webpacker 还很陌生。场景是,我通过名为“slick-carousel”的纱线添加了一个包。我正在使用

require('slick-carousel')

要求包。我有一个自定义 js 文件'custom-slick.js',它使用包中slick.js文件中的函数。slick-carousel我尝试了以下两者的排列和组合 -

import './slick-custom.js'

require('./slick.js');

似乎没有任何工作,并说Uncaught TypeError: $(...).slick is not a function我的猜测,我有点确定'custom-slick.js'slick.js. 我还尝试首先只需要包,并在 body 标记末尾添加以下内容,并将包导入自定义文件中。但似乎不起作用。

<%= javascript_pack_tag 'slick-custom' %>

我找到了两种让它工作的方法。

  1. slick.js将库粘贴到html.erb 中的 body 标记之前apps/javascripts/packs,添加custom-slick.js函数并在下面添加slick.js<%= javascript_pack_tag 'slick' %>
  2. 像往常一样需要图书馆。放入custom-slick.jsapp/assets/javascripts将其添加到 Rails 资产管道中Rails.application.config.assets.precompile += %w[slick-custom.js],然后<%= javascript_include_tag 'slick-custom' %>

它们都有效,但有点混乱。有没有更好的 rails-webpacker-y 方法来实现这一点?

标签: ruby-on-railsrubywebpackruby-on-rails-6

解决方案


推荐阅读