Lee*_*lly 5 javascript ruby-on-rails webpacker alpine.js
自从 AlpineJS 升级到Alpine 3以来,我一直无法让它与 Rails 6 和 webpacker 一起工作,我只能在链接到 CDN 版本的 Alpine 时才能使其工作。
过去使用 AlpineJS 2 我只需要运行yarn add alpinejs然后require('alpinejs')输入javascript/packs/application.js.
从我读到的所有内容来看,似乎在使用 Turbo on Rails 6.1 时我需要这样做:
// Alpine JS
import 'alpine-turbo-drive-adapter'
require('alpinejs')
Run Code Online (Sandbox Code Playgroud)
(显然是在安装软件包之后)。我正在将 javascript 加载到我的 html 标头中<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>。
但是,这仍然行不通。AlpineJS NPM 包是否不能与 webpacker 和 Rails 一起使用?
我如何让它工作而不是从 Alpine JS CDN 加载?
更新:
我确定要跑,yarn add alpinejs然后yarn add alpine-turbo-drive-adapter。我还更新了我的packs/application.js文件以确保它使用 Turbo 而不是 Turbolinks。现在看起来像这样:
import Rails from "@rails/ujs"
import "@hotwired/turbo"
import * as ActiveStorage from "@rails/activestorage"
import "channels"
Rails.start()
ActiveStorage.start()
import "controllers"
// Custom JS files
import 'alpine-turbo-drive-adapter'
import Alpine from "alpinejs"
window.Alpine = Alpine
Alpine.start()
// require("./components/direct_uploads")
require("stylesheets/application.scss")
Run Code Online (Sandbox Code Playgroud)
经过这两次更新后,我现在收到此控制台错误:
TypeError: func(func, completeScope).catch is not a function. (In 'func(func, completeScope).catch(function (error2) {
return handleError(error2, el, expression);
})', 'func(func, completeScope).catch' is undefined)
Run Code Online (Sandbox Code Playgroud)
kev*_*201 -1
import Alpine from 'alpinejs'
window.Alpine = Alpine
Alpine.start()
Run Code Online (Sandbox Code Playgroud)
看来您需要使用 import 来导入模块。
参考:https: //alpinejs.dev/essentials/installation
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |