yarn의 Rails6밖에 없어요.1+Simpacker+PostCSS+TailwindCSS 환경 만들기
TL;DR
웹 팩 없이 Simpacker 가져오기
Gemfile 열기
Gemfile
...(前略)
group :development do
gem "simpacker" # group :development do 配下にこれを追記
...(後略)
앱 컨테이너의 bash(로컬 rails를 설정하면 로컬 단말기)에서bundle install
bundle exec rails simpacker:install
...
Simpacker successfully installed 🎉 🍰
웹 패키지를 삭제합니다.package.제이슨의 devDependencies가 하늘로 날아오르면package.json
package.json
{
"private": true,
"devDependencies": {
}
}
rails simpacker:install
면 npm로 입장필요 없는 서류 지우고 다시 해.
단말기
rm -rf node_modules/
rm package-lock.json
rm webpack.config.js
yarn install
여분의 패키지가 없는 Simpacker를 설정할 수 있습니다.우리도 같은 일을 하고 있다.
docker-compose에서 할 때 이쪽에서 프로그램을 쫓기 쉬워요.
docker-compose에서 rails new, Rails 61+ 테스트 devise | 기타야마 준야|zen
TailwindCSS+PostCSS 가져오기
다음은 터미널입니다.
yarn add tailwindcss
yarn run tailwindcss init -p
yarn add postcss postcss-cli postcss-import postcss-nested --dev
postcss.config.제이스를 이렇게 만든 느낌.postcss.config.js
module.exports = {
plugins: [
require('postcss-import'),
require('tailwindcss'),
require('postcss-nested'),
require('autoprefixer'),
],
}
우리도 같은 일을 하고 있다.Simpacer용 manifest.json의 노드를 출력합니다.js 스크립트 준비
이 파일은 항목 바로 아래에
output_manifest_js.js
이름으로 배치됩니다.package.json에서scripts를 준비합니다.
이런 느낌이에요.
package.json
{
"private": true,
"scripts": {
"cleancss": "rimraf ./public/packs/css/",
"postcss": "postcss ./app/assets/stylesheets/**/*.css -d ./public/packs/css/",
"output_manifest": "node output_manifest_js.js public"
},
"devDependencies": {
"autoprefixer": "^10.0.4",
"rimraf": "^3.0.2",
"postcss": "^8.1.14",
"postcss-cli": "^8.3.0",
"postcss-import": "^13.0.0",
"postcss-nested": "^5.0.2",
"tailwindcss": "^2.0.1",
"yarn-run-all": "^3.1.1"
}
}
※ 이때 손 옆에 있는 패키지.json과devDependencies
의 차이가 있는 경우위와 같이 편집해서
yarn instatall
이렇게 사용 가능합니다.yarn cleancss
- ./public/packs/css/
모든 부하를 삭제하고 파일 위치를 변경할 때yarn postcss
./public/packs/css/
을 실행하고 부하yarn output_manifest
생성
public/packs/manifest.json
TailwindCSS를 사용하는 CSS 준비
app/assets/stylesheets의 부하 등에서 다음과 같은 css를 준비했습니다.
app/assets/stylesheets/tailwindcss.css
/* tailwindcss の class を全て有効にするcss。開発中は便利。 */
@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";
app/assets/stylesheets/application.cssnav {
/* @apply で tailwiindcss の class をまとめて割り当てられる */
@apply py-2 border-b-4 border-pink-400;
.nav-button {
@apply h-12 px-3 py-2 m-2 text-indigo-100 transition-colors duration-150 bg-indigo-700 rounded-lg hover:bg-indigo-800;
}
}
또한 rails의erb도 css에 닿을 수 있습니다.app/views/home/index.html.erb
<h1 class="m-2 w-3/12 border-8 border-pink-400">Home#index</h1>
<p>Find me in app/views/home/index.html.erb</p>
link_to 같은 거 이런 느낌.<%= link_to "リンクの文言", "パス", class: "クラス名" %>
stylesheet_pack_CSS를 tag로 읽기
예를 들어 app/views/layouts/application.html.eb한테 이런 느낌을 줘요.
stylesheet_pack_tag
를 사용하여 상기 준비한 css를 읽습니다.app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>App</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_pack_tag "application", media: "all" %>
<%= stylesheet_pack_tag "tailwindcss", media: "all" %>
</head>
<body>
<%= yield %>
</body>
</html>
사용stylesheet_pack_tag
도우미준비된
public/packs/manifest.json
에서 이 파일에 대한 링크를 생성합니다.PostCSS 전송 실행
나머지는 css를 적당히 편집해서 매번 연결합니다.
단말기
yarn postcss
yarn output_manifest
변압기를 실시할 때마다 귀찮은 사람package.json
"postcss": "postcss ./app/assets/stylesheets/**/*.css -d ./public/packs/css/",
여기에 -w 옵션을 더해서 워치를 하면 되죠.(나는 매번 내가 연결하는 것을 좋아한다.)
이렇게 하면 오케이!운전해 보세요.
예를 들어 devise의 습작을 이런 느낌으로 매치하면 겉모습이 이렇게 변한다.
이것이 바로
이런 느낌!
버튼의 외관 관계는 이곳을 참고했다.TailwindCSS는 편리합니다.
보충: ERB에서도 TailwindCSS의 VScode 확장 기능 사용
Setting.json에 다음과 같은 내용을 추가하여 eb를 〃로 해석하면 OK입니다.
설정한 후 VSCODE를 다시 시작하는 것을 잊지 마십시오.
Setting.json
"files.associations": {
"*.html.erb": "html"
}
총결산
작은 프로젝트라면 웹 패키지 설정보다 간단해서 좋아해요.
이번 창고는 여기 있습니다.
Reference
이 문제에 관하여(yarn의 Rails6밖에 없어요.1+Simpacker+PostCSS+TailwindCSS 환경 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/junki555/articles/911c7e2a849ccd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)