【问题标题】:Uncaught ReferenceError: Rails is not defined in Rails 7 with Webpack未捕获的 ReferenceError:Rails 未在带有 Webpack 的 Rails 7 中定义
【发布时间】:2022-01-16 22:23:46
【问题描述】:

我的 Rails 配置中有一个错误,不知道该怎么办了。它不会干扰我的任何代码,但我想知道为什么会出现这个问题,以及在不久的将来我是否会遇到问题。我正在使用带有 webpack 的 Rails 7。使用可操作电缆和通道时发生错误,在内部使用 javascript:

document.addEventListener('turbolinks:load', () => {})

错误消息:未捕获的 ReferenceError:Rails 未在我的浏览器控制台中定义。

Uncaught ReferenceError: Rails is not defined
    js application.js:17
    Webpack 3

Application.js

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("jquery")
import '../stylesheets/application.scss'
//import '../src/message.js'




Rails.start()
Turbolinks.start()
ActiveStorage.start()

config/webpack 中的 environment.js

const { environment } = require('@rails/webpacker')

const webpack = require('webpack')
environment.plugins.prepend('Provide',
    new webpack.ProvidePlugin({
        $: 'jquery/src/jquery',
        jQuery: 'jquery/src/jquery'
    })
)


module.exports = environment

额外的宝石

gem 'tether-rails'
gem 'jquery-rails'

yarn.lock

"@rails/ujs@^7.0.1":
  version "7.0.1"

这是我所知道的所有关于他们有 rails ujs 的文件,但我不确定我的问题到底是什么。我在项目配置方面做错了吗?我对设置导轨没有经验,对此有点迷失。

【问题讨论】:

    标签: ruby-on-rails ruby webpack yarn-v2


    【解决方案1】:

    你不需要打电话

    Rails.start()
    Turbolinks.start()
    ActiveStorage.start()
    

    你可以删除这 3 行,我猜你对像 https://guides.rubyonrails.org/webpacker.html#using-webpacker-for-javascript 这样的其他示例感到困惑,其中库首先被导入然后启动。在您的示例require("@rails/ujs").start() 中,您同时做这两件事。

    所以我的猜测是,删除这 3 行,问题就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 2017-11-25
      • 2020-02-28
      • 2017-06-25
      • 2019-03-29
      • 2023-04-04
      • 2018-04-02
      相关资源
      最近更新 更多