【问题标题】:Uncaught ReferenceError: my is not defined未捕获的 ReferenceError:我的未定义
【发布时间】:2020-07-27 12:11:20
【问题描述】:

我是 Rails 6 和 Webpacker 的新手。

它应该很简单,但我找不到任何好的教程。

我只是想在新的 .js 文件中添加函数,但没有找到。

我的 application.js 是:

require("@rails/ujs").start();
require("turbolinks").start();
require("@rails/activestorage").start();
require("channels");
require("jquery")

import * as my from 'my/custom';

app/javascript/my/custom.js 看起来像

export function helloWorld() {
  alert('Hello World');
}

我假设我现在可以使用 my.helloWorld()(例如在 chrome 控制台中),但随后我收到错误 Uncaught ReferenceError: my is not defined

我也试过import {helloWorld} from 'my/custom';,但没有成功

我想稍后在我的视图中使用这些函数。

我做错了什么?

提前致谢

【问题讨论】:

    标签: webpack ruby-on-rails-6


    【解决方案1】:

    也许你可以试试这个实现:-

    application.js

    require("@rails/ujs").start();
    require("turbolinks").start();
    require("@rails/activestorage").start();
    require("channels");
    require("jquery")
    
    // require your custom js file
    require("my/custom")
    

    然后在你的自定义 js 文件中:-

    app/javascript/my/custom.js

    window.helloWorld = function helloWorld() {
      alert('Hello World');
    }
    

    然后在任何你想要的地方调用这个函数helloWorld()

    【讨论】:

    • 是的,谢谢你。但是import 等不是更“ES6”-y 吗?
    • 是的,你也可以这样做,这里是参考链接:-blog.capsens.eu/… 但我一直像上面那样为自定义 js 实现。
    猜你喜欢
    • 2023-01-23
    • 2016-11-03
    • 2011-01-05
    • 2016-01-02
    • 2013-10-06
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多