【问题标题】:How can I require a Yarn package in the Rails assets?如何在 Rails 资产中要求 Yarn 包?
【发布时间】:2017-09-03 12:50:29
【问题描述】:

我已经使用$ yarn add progressbar.js 安装了包progressbar.js。现在我试图通过将//= require progressbar.js 添加到我的application.js 来要求它,但是每次我尝试加载页面时都会出现错误:

ActionView::Template::Error(找不到类型为“application/javascript”的文件“progressbar.js”...

我已成功使用相同的过程安装并需要jquery。尝试另一个名称中带有点的包(如 ipaddr.js)失败并出现相同的错误,所以我怀疑名称中带有点的包有什么特别之处。

【问题讨论】:

    标签: ruby-on-rails ruby yarnpkg ruby-on-rails-5.1


    【解决方案1】:

    我认为你应该需要这个库的确切 js 文件:

    //= require progressbar.js/src/main.js
    

    //= require ipaddr.js/lib/ipaddr.js
    

    【讨论】:

    • 将改用//= require progressbar.js/dist/progressbar.js,因为这与需要 jquery 的路径相同。
    • @esBeee 因为你必须需要js 文件,确切地说是lib 的文件,progressbar.js 它只是一个lib 的名称。这是给您的提示,请查看package.json main 部分。 github.com/kimmobrunfeldt/progressbar.js/blob/master/…
    • 好吧,但我想知道为什么您不必为其他包指定 JS 文件,例如 //= require jquery?在这种情况下,它会自动需要jquery/dist/jquery.jsprogressbar.js 存在一个类似命名的文件:progressbar.js/dist/progressbar.js。包名称progressbar.js 中的.js 可能会混淆rails。如果文件被命名为progressbar.js/dist/progressbar.js.js 或者包名只是progressbar,也许它会起作用。
    • 这完全取决于资产加载路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多