Я создал новое приложение rails, используя:
rails new blah --webpack -T
Затем я добавил учебник
yarn add primer
Мой импорт работает, если я делаю это в / assets /stylesheets / application.scss
@ import "~ primer / index.scss";
Primer имеет много модулей, поэтому primer / index.scss ссылается на файлы из других модулей.Так что даже если я добавлю тильду в свой первый импорт, это не решит проблему, потому что в других файлах нет тильды.
Но проблема в том, что, как только файл index.scss загружается, появляются другиефайлы, которые перестают работать, потому что они также ссылаются на файлы, такие как:
// Core modules
@import "primer-base/index.scss";
@import "primer-box/index.scss";
@import "primer-breadcrumb/index.scss";
@import "primer-buttons/index.scss";
@import "primer-table-object/index.scss";
@import "primer-forms/index.scss";
@import "primer-layout/index.scss";
@import "primer-navigation/index.scss";
@import "primer-pagination/index.scss";
@import "primer-tooltips/index.scss";
@import "primer-truncate/index.scss";
Таким образом, этот импорт также должен быть изменен.Мне нужно решить это, поэтому мне не нужно ставить префикс со знаком тильды.Мой assets.rb уже включает в себя node_modules, поэтому я не уверен, что еще я могу сделать?
Мой /initializers/assets.rb имеет это:
Rails.application.config.assets.paths << Rails.root.join('node_modules')
Еще вмой файл application.scss Я должен включить знак тильды для ссылки на файл scss:
@import "primer/index.scss";
html {
font-size: 30px;
}
файл application.js:
import "./application.scss";
console.log('Hello World from Webpacker2d');
Мой файл макета:
<!DOCTYPE html>
<html>
<head>
<title>Blah</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application' %>
<%= stylesheet_pack_tag 'application' %>
</head>
<body>
<%= yield %>
</body>
</html>