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因为您必须requirejs
文件,确切地说是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