[英]Should I still use Gemfile's javascript library when using yarn with Rails 5.1?
我試圖在Rails 5.1中獲得一些jQuery的東西。 由於jQuery支持被刪除(默認情況下),我很難找到我應該使用的確切工作流程。
起初我會嘗試一些Ajax的東西,但后來我在Web開發者控制台中意識到'$'沒有定義。 這確認了默認情況下確實沒有安裝jQuery。
1.我做的第一件事就是在應用程序布局視圖中放置一個硬編碼的jquery cdn腳本,就像在app/views/layouts/application.html.erb
:
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
這很有效。 但我想這不是支持的方式。
2.然后我嘗試使用紗線安裝jquery,因為我已經安裝了紗線的Rails 5.1安裝。
yarn add jquery
然后yarn
(似乎這最后沒有必要) app/assets/javascripts/application.js
文件中添加了//= require jquery
這也有效。
編輯:我剛注意到有一個rails yarn:install
命令,我應該使用它而不是終端本機yarn命令嗎?
但后來我想玩一些jQuery-ui的東西。 注意到包裝jquery-ui
存在於紗線中,我做了同樣的事情:
yarn
yarn add jquery-ui
然后yarn
jquery
下面的app/assets/javascripts/application.js
文件中添加了//= require jquery-ui
但這沒效果。 然后我注意到有些人引用了jquery gems,特別是gems jquery-rails
和jquery-ui-rails
。
我的問題是,盡管有一條工作的紗線管道 ,我還應該使用相關的寶石嗎?
在我的情況下,我應該只使用這兩個寶石嗎? 或者我應該只安裝jquery-ui-rails
因為我的jquery安裝紗線正在工作?
對不起,但這個資產管理的事情還沒有進入我的腦海......還沒有啟動webpack的東西😖
我沒有Rails寶石和紗線包裝就可以了。
而不是這個
的Gemfile:
gem 'jquery-rails'
gem 'jquery-ui-rails'
解。
在package.json中添加yarn包
{
...
"dependencies": {
"jquery": "3.2.1",
"jquery-ui-dist": "1.12.1",
"jquery-ujs": "1.2.2",
.. more packages here
}
}
注意! 它使用包jquery-ui-dist(不是jquery-ui)。
application.js中:
//= require jquery/dist/jquery
//= require jquery-ujs
//= require jquery-ui-dist/jquery-ui
關於jquery-ui包:NPM上的jQuery-ui包不是預構建的,因此不包含jquery-ui.js; 包將需要在使用之前構建或者包含/單獨使用的所有小部件。 在這個討論中閱讀更多內容 - jquery-ui和webpack,如何將其管理到模塊中? 。
您可以查看項目根目錄中的node_modules
文件夾 - 在那里您將找到所有安裝了YARN軟件包的文件夾,並且應該有您添加到YARN並想要使用的庫的文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.