Phoenix1.6에서 SCSS 사용
SCSS
결론
CargoSense/dart_sass를 사용하고 싶을 때는 SCSS와phoenixframework/esbuild 두 가지를 사용할 수 있다.그러나 문서에 기재된 코드를 흑운에 복제하지 말고 자산을 어떤 순서로 처리해야 할지 미리 잘 고려한 뒤 설정하는 것이 중요하다.
priv/static/assets/assets/app.js
priv/static/assets/assets/app.css
phoenixframework/esbuild를 사용하려면 다음 중 하나가 필요합니다.
mix assets.deploy
으로 지령으로 컴파일된다.priv/static/assets/
하고 필요하지 않은 파일을 삭제하십시오.세 개의 파일에 설정된 것 같습니다.
mix.exs
config/config.exs
config/dev.exs
Phoenix.Endpoint watcher 관련(개발용)
어떻게든 쓰고 싶을 때SCSSSCSS는 편리합니다.
CargoSense/dart_sass
CargoSense/dart_sass와 같은 요령으로 설정할 수 있다SCSS.
phoenixframework/esbuild 마찬가지로 세 파일에 설정합니다.
mix.exs
config/config.exs
config/dev.exs
처음에는 아무 생각 없이 phoenixframework/esbuild된 문서에 적힌 코드를 사용했지만 이렇게 되면 잘못된 것일 수도 있다는 것을 알게 되었다.문서가 나쁜 것이 아니라 자산을 어떻게 처리하고 싶은지 명확한 방침이 필요하다.
예를 들어 CargoSense/dart_sass와 phoenixframework/esbuild 두 CSS가 제품을 구축하는 목적지
priv/static/assets/app.css
가 있다면 CSS가 JS 파일에 기록된 상황에서 같은 파일을 경쟁적으로 덮어쓴다.이 점을 알아차리기 전에 시간이 걸릴 것이다.처음에 여러 가지 방법을 시도한 결과CargoSense/dart_sassJS,phoenixframework/esbuildSCSS의 분업체제가 가장 좋은 결론에 이르렀다.가장 간단하고 확실하다.
예를 들어 다음과 같은 방침을 고려할 수 있다.
CargoSense/dart_sass에서 CSS는 전혀 취급되지 않습니다.
phoenixframework/esbuild의 성과 파일을
app.css
이외의 이름으로 설정하면 만약CargoSense/dart_sass에 CSS가 생성되어도 충돌이 발생하지 않기 때문에 고장이 발생하기 쉽다.lib/my_app_web/templates/layout/root.html.heex
- <link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/assets/app.css")}/>
+ <link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/assets/from_scss.css")}/>
<script defer phx-track-static type="text/javascript" src={Routes.static_path(@conn, "/assets/app.js")}></script>
예를 들어 config/config.exs
이런 느낌입니다.config/config.exs
...
# Configure esbuild (the version is required)
config :esbuild,
version: "0.14.1",
default: [
args: [
"js/app.js",
"--bundle",
"--target=es2016",
"--outdir=../priv/static/assets",
"--external:/fonts/*",
"--external:/images/*"
],
cd: Path.expand("../assets", __DIR__),
env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)}
]
# https://github.com/CargoSense/dart_sass
config :dart_sass,
version: "1.44.0",
default: [
args: [
"scss/index.scss",
"../priv/static/assets/from_scss.css" # デバグしやすいよう`app.css`以外の名前にする
],
cd: Path.expand("../assets", __DIR__)
]
...
phoenixframework/esbuild 오래된 Phoenix 1.6시phoenixdiff.org를 업데이트하고 싶을 때 편리합니다.차점을 확인할 수 있다.
Reference
이 문제에 관하여(Phoenix1.6에서 SCSS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mnishiguchi/items/89ef66b7e3a9a07d9f49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)