Phoenix 1.5에 Bootstrap 4 및 PurgeCSS 추가
13045 단어 tailwindcsselixirphoenixbootstrap
日本語版
설정 방법은 다음과 같습니다.
1. 부트스트랩 설치
cd path/to/my/phoenix/app
npm install --prefix assets --save-dev bootstrap@4 purgecss-webpack-plugin glob-all
2. 부트스트랩 CSS 가져오기
다음으로 Bootstrap의 CSS를
assets/css/app.scss
파일로 가져와야 합니다. /* This file is for your main application css. */
@import "../node_modules/nprogress/nprogress.css";
+ @import "../node_modules/bootstrap/scss/bootstrap.scss";
3. CSS 제거 구성
이것은 선택적인 단계이지만 설정하기 쉽기 때문에 부트스트랩에서 사용하지 않는 CSS를 제거하는 것이 좋습니다.
assets/webpack.config.js
파일을 열고 몇 가지 위치를 수정합니다.glob-all
대신 glob
을 사용합니다. const path = require('path');
- const glob = require('glob');
+ const glob = require('glob-all');
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
+ const PurgecssPlugin = require('purgecss-webpack-plugin');
module.exports = (env, options) => {
const devMode = options.mode !== 'production';
return {
# ...
plugins: [
new MiniCssExtractPlugin({ filename: '../css/app.css' }),
new CopyWebpackPlugin([{ from: 'static/', to: '../' }]),
+ new PurgecssPlugin({
+ paths: glob.sync([
+ '../lib/**/*.ex',
+ '../lib/**/*.leex',
+ '../lib/**/*.eex',
+ './js/**/*.js',
+ './node_modules/some_library/**/*.js',
+ ]),
+ }),
]
.concat(devMode ? [new HardSourceWebpackPlugin()] : [])
}
};
또는 프로덕션 모드에서만 Purge CSS를 사용하려는 경우
module.exports = (env, options) => {
const devMode = options.mode !== 'production';
return {
# ...
plugins: [
new MiniCssExtractPlugin({ filename: '../css/app.css' }),
new CopyWebpackPlugin([{ from: 'static/', to: '../' }]),
].concat(
devMode
? [
// development only
new HardSourceWebpackPlugin(),
]
: [
// production only
new PurgecssPlugin({
paths: glob.sync([
'../lib/**/*.ex',
'../lib/**/*.leex',
'../lib/**/*.eex',
'./js/**/*.js',
'./node_modules/some_library/**/*.js',
]),
}),
]
),
}
};
저는 개인적으로 개발과 프로덕션 모두에 적용하는 것을 선호하므로 배포 시 놀라움을 방지할 수 있습니다.
4. 불필요한 Phoenix 기본 CSS 제거
이제 Bootstrap CSS를 사용하므로 표시할 것이 없을 때 플래시 메시지를 숨기는
.alert:empty
이외의 플래시 메시지에 대한 Phoenix 기본 CSS를 제거할 수 있습니다.- .alert {
- padding: 15px;
- margin-bottom: 20px;
- border: 1px solid transparent;
- border-radius: 4px;
- }
- .alert-info {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
- }
- .alert-warning {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
- }
- .alert-danger {
- color: #a94442;
- background-color: #f2dede;
- border-color: #ebccd1;
- }
- .alert p {
- margin-bottom: 0;
- }
.alert:empty {
display: none;
}
5. 부트스트랩 변수 재정의(선택 사항)
선택적으로 부트스트랩 변수를 재정의하여 스타일을 사용자 정의할 수 있습니다. 라이브러리의
scss/_variables.scss
파일에서 부트스트랩 변수의 전체 목록을 찾을 수 있습니다.저는 개인적으로 Phoenix 프로젝트의
assets/css/_variables.scss
에 파일을 만들고 재정의하려는 Bootstrap 변수의 일부 섹션을 복사합니다. 아래와 같이 보일 수 있습니다.@import "../node_modules/bootstrap/scss/functions";
// Custom Variables
// Override Bootstrap variables here.
// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss
// Color system
$white: #fff;
$gray-100: #eceff1;
$gray-200: #cfd8dc;
$gray-300: #b0bec5;
$gray-400: #90a4ae;
$gray-500: #78909c;
$gray-600: #607d8b;
$gray-700: #546e7a;
$gray-800: #455a64;
$gray-900: #37474f;
$black: #263238;
$grays: ();
// stylelint-disable-next-line scss/dollar-variable-default
$grays: map-merge(
(
"100": $gray-100,
"200": $gray-200,
"300": $gray-300,
"400": $gray-400,
"500": $gray-500,
"600": $gray-600,
"700": $gray-700,
"800": $gray-800,
"900": $gray-900
),
$grays
);
// https://material.io/resources/color
$blue: #2962FF;
$indigo: #304FFE;
$purple: #AA00FF;
$pink: #C51162;
$red: #D50000;
$orange: #FF6D00;
$yellow: #FFD600;
$green: #00C853;
$teal: #00BFA5;
$cyan: #00B8D4;
한 가지 중요한 것은 라이브러리 파일에서 부트스트랩 변수를 복사할 때 제거해야 한다는 것입니다
!default
. 왜냐하면 우리의 사용자 정의 값은 기본값이 아니라 최종이기 때문입니다.그런 다음 내
assets/css/app.scss
파일에서 사용자 정의 변수를 가져옵니다. /* This file is for your main application css. */
+ @import 'variables';
@import '../node_modules/nprogress/nprogress.css';
@import '../node_modules/bootstrap/scss/bootstrap.scss';
6. 사용자 정의 CSS 추가(선택 사항)
/* This file is for your main application css. */
@import 'variables';
@import '../node_modules/nprogress/nprogress.css';
@import '../node_modules/bootstrap/scss/bootstrap.scss';
+ @import 'my_custom_syles';
그게 다야!
Reference
이 문제에 관하여(Phoenix 1.5에 Bootstrap 4 및 PurgeCSS 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mnishiguchi/adding-bootstrap-4-and-purge-css-to-phoenix-1-5-331m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)