簡體   English   中英

在使用Rails 5.1的紗線時,我還應該使用Gemfile的javascript庫嗎?

[英]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-railsjquery-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM