繁体   English   中英

在带有 webpacker 的 Rails 6 中使用 wow.js 的正确方法是什么?

[英]What is the correct way to use wow.js in Rails 6 with webpacker?

我正在尝试在 Rails 6.1.3.2 项目上将 wow.js与我的 Ruby 一起使用。 我已经用 Yarn 安装了 wowjs,我在我的 node_modules 文件夹中看到了它。

我已将 wowjs 导入我的应用程序 app/javascript/packs/application.js

import WOW from 'wowjs';
require("wowjs/css/libs/animate.css") 

我有一个位于此路径的 script.js 文件:app/javascript/script.js 并启动 WOW

    wow = new WOW({
        animateClass: 'animated',
        offset: 100
    });
    wow.init();

在 wowjs 像这样导入之后 script.js 被导入到 app/javascript/packs/application.rb 中:

import WOW from 'wowjs';
require("wowjs/css/libs/animate.css")
import "scripts.js"

我在控制台中不断收到以下错误:

scripts.js:514 Uncaught ReferenceError: WOW is not defined
at Object.<anonymous> (scripts.js:514)
at Object../app/javascript/scripts.js (scripts.js:897)
at __webpack_require__ (bootstrap:63)
at Module../app/javascript/packs/application.js (application.js:1)
at __webpack_require__ (bootstrap:63)
at bootstrap:198
at bootstrap:198

我有以类似方式安装的其他模块,它们不会引发错误。 我想了解这样做的“导轨方式”是什么。 提前感谢你的帮助。

通过 yarn 安装 jquery,wowjs,将这一行添加到app/javascript/packs/application.js

window.WOW = require('wowjs').WOW;

通过添加到app/assets/stylesheets/application.scss这一行来嵌入 wow css 到项目中:

 @import "wowjs/css/libs/animate";

最后创建这个视图示例app/views/pages/home.html.erb

Welcome to project railstrace !
<section class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s">ABC</section>
<section class="wow slideInRight" data-wow-offset="10"  data-wow-iteration="10">DEF</section>

<script>
  new WOW({live: false}).init()
</script>

注意:如果设置new WOW({live: false}).init()将删除此警告:您的浏览器不支持 MutationObserver。

享受!

这个问题的答案最终如下:

将 import 语句从 application.js 移动到正在使用模块的 scripts.js:

import "splitting/dist/splitting.css";
import "splitting/dist/splitting-cells.css";
import Splitting from "splitting";

我错过了“哇”作为“var”的声明。 所以我像这样在 script.js 中添加了“var”:

var wow = new WOW({
    animateClass: 'animated',
    offset: 100
});
wow.init();

对我来说,关键的教训是导入语句需要位于使用模块的脚本的顶部。 我曾假设仅将它们导入到 application.js 中就足以使它们可用于所有脚本。 也许那是一个新手课程。 非常感谢@rossta 的一些重要指导。 我期待着他即将到来的 Webpacker 课程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM