Ruby on rails 如何在Rails资产中需要纱线包?

Ruby on rails 如何在Rails资产中需要纱线包?,ruby-on-rails,ruby,yarnpkg,ruby-on-rails-5.1,Ruby On Rails,Ruby,Yarnpkg,Ruby On Rails 5.1,我已经使用$warn add progressbar.js安装了这个包。现在,我试图通过将/=require progressbar.js添加到我的应用程序.js来请求它,但每次尝试加载页面时都会出现错误: ActionView::Template::Error(找不到类型为“application/javascript”的文件“progressbar.js” 我已经成功地使用了相同的过程来安装和要求。尝试另一个名称中带有点的包时,会失败,并出现相同的错误,因此我怀疑名称中带有点的包有什么特殊之

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

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


我已经成功地使用了相同的过程来安装和要求。尝试另一个名称中带有点的包时,会失败,并出现相同的错误,因此我怀疑名称中带有点的包有什么特殊之处。

我认为您应该要求此库的确切js文件:

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


改为使用
/=require progressbar.js/dist/progressbar.js
,因为这与require jquery的路径相同。@esBeee因为您必须require
js
文件,确切地说是lib的文件,
progressbar.js
它只是lib的一个名称。这里有一个提示,请检查
package.json
main好吧,但是我想知道为什么你不必为其他包指定一个JS文件,比如
/=require jquery
?在这种情况下,它自动需要
jquery/dist/jquery.JS
progressbar.JS
progressbar.JS/dist/progressbar.JS
。可能是中的
.JS
包名
progressbar.js
混淆了rails。如果文件名为
progressbar.js/dist/progressbar.js
,或者包名只是
progressbar
,那么它可能会起作用。这完全取决于资产加载路径。
//= require ipaddr.js/lib/ipaddr.js