μ΄ νλ₯ν λμκ΄μ κ°μ¬λ립λλ€!
babel-plugin-import
λ₯Ό μ¬μ©νμ¬ λͺ¨λμ CSS κ°μ Έμ€κΈ°λ₯Ό μλνμ§λ§ κ°λ³ κ΅¬μ± μμμ λν CSSμ ν¨κ» κΈ°μ‘΄ μ€νμΌμ λ°©ν΄νλ λ§μ κΈλ‘λ² CSSλ₯Ό κ°μ Έμ€κ³ μμ΅λλ€. μ μ CSSλ₯Ό ν¬ν¨νμ§ μκ³ κ°λ³ κ΅¬μ± μμμ CSSλ₯Ό κ°μ Έμ¬ μ μμ΅λκΉ?
κ°μ¬ ν΄μ!
μ΄μ κ°μ CSS κ·μΉμ μλ―Έν©λκΉ?
html,
body {
...
}
μ.
μ§κΈ ν΄λΉ CSS κ·μΉμ κ°μ Έμ€μ§ μλ κ²μ λΆκ°λ₯ν©λλ€.
https://github.com/ant-design/ant-design/issues/1966#issuecomment -247946641
μ΄μ μ΄λ¬ν μ μ μ€νμΌμ μ¬μ μν΄μΌ ν©λλ€.
λλ babel-plugin-import
μ style
μ΅μ
μ μμ νκ³ λ μ μ μμ νμΌμ λ
립μ μΌλ‘ κ°μ Έμ΅λλ€.
<strong i="12">@import</strong> "~antd/lib/style/themes/default.less";
<strong i="13">@import</strong> "~antd/lib/button/style/index.less";
κ·Έλλ λμ°ν λμμΈμ λλ€.
μ΄ λ¬Έμ λ μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ νκΈ° λ§€μ° μ΄λ ΅κ² λ§λλλ€. νΉν body λ±μ λν μ μ μμ±μ΄ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό λ³κ²½ν κ³νμ΄ μλ ν μ΄ λ¬Έμ λ₯Ό ν¨μ¬ λ λͺ ννκ² ν΄μΌ νλ€κ³ μκ°ν©λλ€.
@Forestdev @peitalin μλ €μ§ λ¬Έμ μ΄μ§λ§ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μκ°μ΄ μΆ©λΆνμ§ μμ΅λλ€.
νμ§λ§ μ¬κΈ°μ κ³μ λ Όμν μ μμ΅λλ€.
μ£Όμ λ³κ²½ μ¬νμ κ°μ Έμ¬ μ μλ€λ©΄ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μλ₯Ό λ€μ΄ κ΅¬μ± μμμ μ€νμΌλ‘ μ¬μ€μ ν λ μ€νμΌμ μ΄λν©λλ€.
μ΄λνλ€:
* {
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); // remove tap highlight color for mobile safari
}
μκ²:
.ant-btn,
.ant-btn * {
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); // remove tap highlight color for mobile safari
}
κ·Έλ¦¬κ³ μ΄μ λ²μ κ³Όμ νΈνμ±μ μν΄ λ 립ν μ¬μ€μ μ€νμΌμνΈλ₯Ό μ 곡ν μ μμ΅λλ€.
import 'antd/styles/reset.less'
μ΄κ²μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
λ Όμν μλ μμ§λ§ μ루μ μ μ°Ύμ μ μλ κ²½μ° μ§κΈ μ μ©ν μκ°μ΄ μμ΅λλ€.
λ§μ μ¬λλ€μ΄ κΈλ‘λ² CSSλ₯Ό κ°μ Έμ€κ³ κΈ°μ‘΄ μ€νμΌμ μ¬μ μν μ¬μ κ° μκΈ° λλ¬Έμ μ΄κ²μ΄ μ€μν λ¬Έμ λΌκ³ μκ°ν©λλ€.
κ·Έκ²μ λ΄κ° Antdλ₯Ό μ±ννλ κ²μ λ§λ μ λ§ μ±κ°μ μΌμ λλ€.
μ΄κ²μ λ§μ κ°λ°μλ₯Ό μ°¨λ¨ν©λλ€#
antλ bootstarpμ νΈνλμ§ μκΈ° λλ¬Έμ ant μ¬μ©μ ν¬κΈ°ν΄μΌ νμ΅λλ€.
μ μ μμ νμΌμ λ 립 λΌμ΄λΈλ¬λ¦¬μ λ£λ κ²μ μ΄λ»μ΅λκΉ?
btw. λλ λ Έλ ₯νκ³ μλ€
κ΄λ ¨ ν λ‘ : https://github.com/palantir/blueprint/issues/244
μλ νμΈμ, μ λ [email protected] μμ μμ μ€μ΄λ©° κΈλ‘λ² μ€νμΌ λ¬Έμ μ λν μ루μ μ μ°ΎμΌλ €κ³ ν©λλ€.
@benjycuiμμ import 'antd/styles/reset.less'
μ μ루μ
μ μλνμ΅λλ€. νΉν babel-plugin-importλ₯Ό μ¬μ©νλ©΄ μ€λ¨ λ³κ²½μ΄ λκ³ μ€νμΌ κ°μ Έμ€κΈ°κ° ν¨μ¬ λ 볡μ‘ν΄μ§λλ€. κ·Έλμ ν¨μ€νκΈ°λ‘ ν©λλ€.
κ·Έλ° λ€μ μ΄ λ¬Έμ μ μμ μ babel-plugin-import
μ κ΄ν κ²μΌλ‘ μ½λλ₯Ό λ€μκ³Ό κ°μ΄ λ³νν©λλ€.
import Button from 'antd/lib/button';
import 'antd/lib/button/style/css'; // It will import reset styles and hard to override it because it was imported lately!!!
μ΄μ λν λ λμ ν΄κ²° λ°©λ²μ babel-plugin-import
style
μ΅μ
μ μ¬μ©νμ§ μκ³ μλμΌλ‘ μ€νμΌμ κ°μ Έμ€λ κ²μ
λλ€.
<strong i="17">@import</strong> '~antd/dist/antd.css';
// your global styles
body {
...
}
κ·Έλμ λλ μ 체 reset.less
μμ΄λμ΄λ₯Ό ν¬κΈ°νκ³ λ€μκ³Ό κ°μ μ±κ°μ μ¬μ€μ μ½λλ₯Ό μ κ±°ν©λλ€. https://github.com/ant-design/ant-design/blob/afce275d25abe958b32cf15ba1f16c49f4fca900/components/style/core/base. μ μ#L33 -L50
λν #6162λ₯Ό ν΄κ²°νκΈ° μν΄ bootstrap@v4 μμ λ λμ νμ΄ν¬κ·ΈλνΌ μ½λλ₯Ό μΆκ°νμ΅λλ€.
λͺ¨λ μ λ°μ΄νΈλ νμ¬ #7682μ μμΌλ©° 곧 antd-3.0μ λ³ν©λ©λλ€.
import 'antd/styles/reset.less
λ₯Ό import 'antd/styles/typography.less
λ‘ λ³κ²½νμμμ€.
μ¬μ©μκ° [email protected] μμ μ
κ·Έλ μ΄λν λ import 'antd/styles/typography.less
λ λ§μ΄κ·Έλ μ΄μ
μ μ½κ² λ§λλ μ΄λν°μ
λλ€.
antdλ₯Ό μ²μ μ νλ μ¬μ©μμ κ²½μ° import 'antd/styles/typography.less
λ μ νμ κΈ°λ₯μ΄λ―λ‘ μΆ©λμ λν΄ κ±±μ ν νμκ° μμ΅λλ€.
antd/style/v2-compatible-reset.less
μ(λ₯Ό) μΆκ°νμ΅λλ€.
+// For 2.x reset compatibility
+// import 'antd/style/v2-compatible-reset';
+// or
+// <strong i="7">@import</strong> '~antd/style/v2-compatible-reset.css';
μ΄ λ¬Έμ κ° νμ¬ μ’ λ£λμμΌλ―λ‘ λκ΅°κ° μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν λͺ κ°μ§ λ¨κ³λ₯Ό μ€λͺ ν΄ μ£Όμκ² μ΅λκΉ? ν¬λ‘¬ νμ₯μ μ½ν μΈ μ€ν¬λ¦½νΈμμ antdλ₯Ό μ¬μ©νλ €κ³ νλλ° λͺ¨λ μΉνμ΄μ§κ° μλ§μ λλ€.
@abhinavzspace antd@next
λ₯Ό μ€μΉνμ¬ 3.0 Alpha λΉλλ₯Ό μ»μ μ μμ΅λλ€. μ΄λ κ² νλ©΄ μ΄ λ¬Έμ κ° μ΄λ μ λ ν΄κ²°λμ§λ§ μμ νλ μλλλ€.
λ§μ μκ°μ΄ μ§λ ν μ μκ² λ§λ μ루μ μ μ°Ύμμ΅λλ€. λ€λ₯Έ λΆλ€μκ²λ ν¨κ³Όκ° μμμ§λ...
λ¬Έμ λ κ° κ΅¬μ± μμκ° style/core/base.less
μμ λ§μ μ μ μ¬μ€μ λ° μ¬μ μ(normalize.css ν¬ν¨)λ₯Ό κ°μ Έμ΅λλ€. μ΄ μ€νμΌμ΄ λΉλκΈ°μμΌλ‘ λ‘λλλ©΄ λͺ¨λ κ²μ μλ§μΌλ‘ λ§λλ νμ΄μ§ μ€νμΌμ μ¬μ μν©λλ€.
μΆκ°νλ κ²μ λ°κ²¬νμ΅λλ€.
import 'antd/lib/style/index.css'
// import 'antd/lib/style' if you are using LESS
λ΄ νλ‘μ νΈμ μ§μ μ μΌλ‘ μ€μ νλ©΄ μΉν© ν©μ΄ λ€λ₯Έ λͺ¨λ μ€νμΌλ³΄λ€ λ¨Όμ μ¬μ€μ λλ―λ‘ λΉλκΈ° κ΅¬μ± μμκ° λ‘λλ λ μ¬μ€μ μ λ€μ κ°μ Έμ€κ±°λ ν¬ν¨νμ§ μμ΅λλ€.
κ° κ΅¬μ± μμμ λν΄ λ€λ₯Έ index.lessλ₯Ό μ 곡ν΄μΌ ν©λκΉ? index.lessλ₯Ό μ μ΄ν μ μμ΅λλ€. λν κ±°μ λͺ¨λ νμΌμ΄ @import
μ§μλ¬Έμ μ κ±°νκ±°λ @import (μ°Έμ‘°)λ₯Ό μ¬μ©ν©λλ€.
μ’μ ν΄κ²°μ± μ΄ λ κΉμ?
ννννννννν λͺ¨λ μ¬λμ΄ μ΄κ²μ΄ μλ €μ§ λ¬Έμ μμ μ μ μλλ‘ μ΄ λ¬Έμ λ "곡κ°" μνμ¬μΌ ν©λλ€. μ΄κ²μ μν΄ νλ‘μ νΈ μ€κ°μ antdλ₯Ό λ²λ Έμ΅λλ€.
μ΄κ²μ μ§μ§ λΆλλ¬μ΄ μΌμ λλ€. Antκ° λμκ² μΆμ²λμκ³ μ λ§ν΄ 보μ΄μ§λ§ μ΄ λμμ κΈ°μ‘΄ λμμΈμ μλ§μΌλ‘ λ§λ€κ³ Antκ° Bootstrapμ²λΌ λκ»΄μ§κ² λ§λλλ€. π¦
Antλ μ체 κ΅¬μ± μμμ λͺ¨μμ λν΄ μ견μ μ μν΄μΌ νμ§λ§ μ¬μ©μ μ¬μ΄νΈμ λͺ¨μμ λν΄μλ μ견μ μ μν΄μλ μ λ©λλ€.
μ΄ λ¬Έμ λ Ant 3κ° μ΄ λ¬Έμ λ₯Ό μμ ν¨μ μλ―Έν©λλ€. νμ§λ§ μ λ μ¬μ ν λ§μ κΈλ‘λ² μ€νμΌμ λ³΄κ³ μμ΅λλ€. μ΄λ¬ν μ μ μ€νμΌμ μΆκ°νμ§ μμΌλ €λ©΄ μ¬μ©μλ μ΄λ»κ² ν΄μΌ ν©λκΉ?
@openjck λλ μ΄κ²μ΄ μ μ μ€νμΌμ μ¬μ€μ νλ κ²μ²λΌ 보μΈλ€λ κ²μ λ°κ²¬νμ΅λλ€(λ΄ React μ§μ μ μ μΆκ°νμ΅λλ€).
import 'antd/lib/style/v2-compatible-reset';
κ·Έλ€μ λ³κ²½ λ‘κ·Έ μ 묻ν μλ κ²μ λ°κ²¬νμ΅λλ€.
λλ κ·Έ λ©λͺ¨λ₯Ό μ°Ύμμ§λ§ κ·Έκ²μ λλ₯Ό μν΄ μλνμ§ μμμ΅λλ€. λ¬Έμκ° λ§€μ° ν¬λ°ν©λλ€. λ€λ₯Έ μ€νμΌ κ΄λ ¨ μμ νμ 무μμ΄λ©° μ΄λ€ μμλ‘ νμμ΅λκΉ?
Ant μ€νμΌμ κ΄ν ν κ·Έκ² μ λΆμ
λλ€. λλ style: true
μ€μ μ μ¬μ©νκ³ μλλ° μ΄λ μ€μν μ μμ΅λλ€.
μ΄λ€ κΈλ‘λ² μ€νμΌμ λ³νκ° λ³΄μ΄λμ?
λλ webpacker λ° railsμ ν¨κ» Reactλ₯Ό μ¬μ©νκ³ μμΌλ©° μ΄μ μλ κ°μ λ¬Έμ κ° μμμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ HTML 보기μμ stylesheet_pack_tag μλμ κΈ°μ‘΄ CSS νμΌ μ΄λ¦μ μ€νμΌμνΈ λ§ν¬ νκ·Έλ₯Ό μΆκ°νλ©΄ μλν©λλ€.
= javascript_pack_tag 'root'
= stylesheet_pack_tag 'root'
= stylesheet_link_tag 'application'
@jhdavids8 , style: true
μ μ΄λμ μ€μ νκ³ μμ΅λκΉ? κ·Έκ²μ΄ λ΄ μ€μ μ μ μ©λλμ§ νμ€νμ§ μμ΅λλ€.
λλ create-react-appμ μ¬μ©νκ³ μμ΅λλ€. λ¬Έμ μμλ κΈ°λ³Έ μ€νμΌμνΈ μ€ νλμ μ΄κ²μ μΆκ°ν κ²μ κΆμ₯ν©λλ€.
<strong i="10">@import</strong> '~antd/dist/antd.css';
...νμ§λ§ κ·Έλ κ² νλ©΄ λ³Έλ¬Έμ μ€μ λ κΈκΌ΄ λͺ¨μ λ° μ€ λμ΄μ κ°μ μ μ μ€νμΌ λ³κ²½μ΄ λμ λ©λλ€.
μ°λ¦¬ νμ κΈλ‘λ² μ€νμΌ λλ¬Έμ antdλ₯Ό ν¬κΈ°νμ΅λλ€ π . λ°μμκ² μ§λ§ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ λ°©λ²μ μ°ΎμΌλ©΄ antdμ λ²μκ° κΈκ²©ν λμ΄λ κ²μ λλ€.
μ΄ λ¬Έμ λ₯Ό λ€μ μ¬μμμ€. λλ μ¬μ νμ΄ νλμλ³΄κ³ μμΌλ©° λ€λ₯Έ μ¬λλ€λ λ§μ°¬κ°μ§μ λλ€.
+1
+1
λ΄κ° μΆκ°ν μ μ cssλ λ§€λ² /lib/style/index.css μ€κ°μ ν¨ν€μ§λ κ²μ
λλ€. μ λ κ·Έλ₯ antdλ₯Ό μ κ±°νκ³ μΆμ΅λλ€.
IE 10-μμ μ¬λ°λ₯Έ λμ€νλ μ΄λ₯Ό μΆκ°νμμμ€.
λ€
HTML,
λͺΈ {
λλΉ: 100%;
λμ΄: 100%;
}
μ κ·Έλ κ² μ΄λ €μ΄μ§... μ¬μ©μ μ μ μ μ CSSλ₯Ό /lib/style/index.css λμ λ°°μΉν μ μλ μ΄μ
+1
+1
@afc163μ΄ μ€λͺ ν λ°©μμΌλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€λ κ²μ μμμ΅λλ€.
μΌλ°μ μΌλ‘ import 'antd/lib/tabs/style/css';
νλ©΄ λ€μμ΄ ν¬ν¨λ νμΌμ κ°λ¦¬ν΅λλ€.
'use strict';
require('../../style/index.css');
require('./index.css');
Tabs CSSλ₯Ό κ°μ Έμ€κ³ μΆμμΌλ―λ‘ μ΄κ²μ κ΅¬μ± μμ νμΌμ μΆκ°νμ΅λλ€.
import 'antd/lib/tabs/style/index.css';
κ·Έλ¦¬κ³ νμ΄μ§μ λλ¨Έμ§ λΆλΆμ μν₯μ μ£Όμ§ μκ³ ν κ΅¬μ± μμμ μ€νμΌμ μ μ νκ² μ§μ νλ κ²μΌλ‘ λνλ¬μ΅λλ€.
κ·Έλ¬λ 첫 λ²μ§Έ μ€νμΌμ΄ μ΄μ κ° μκΈ° λλ¬Έμ μ£Όμνμμμ€. μΌλΆ antd κ΅¬μ± μμλ λ€λ₯Έ κ΅¬μ± μμλ³΄λ€ λ λ§μ΄ μμ‘΄νκ³ λͺ¨λ κ²½μ°μ μλνμ§ μμ μ μμ΅λλ€.
_μμ§ μ κ±°νμ§ μμλ€λ©΄ .babelrc νλ¬κ·ΈμΈμμ style
μμ±μ μ κ±°ν΄μΌ ν©λλ€.
[ "import", { "libraryName": "antd" } ]
_
κ·Έκ²μ΄ λκ΅°κ°λ₯Ό λκΈ°λ₯Ό λ°λλλ€!
μ΄κ²μ μ λ§ λ―ΈμΉ μ§μ λλ€. μ μ μ€νμΌμ λ°©ν΄νλ "λͺ¨λμ" κ΅¬μ± μμ λΌμ΄λΈλ¬λ¦¬μ λλ€. μ΄ λΌμ΄λΈλ¬λ¦¬κ° μ κ·Έλ κ² λμ νκ°λ₯Ό λ°μλμ§, κ·Όλ³Έμ μΈ λ¬Έμ κ° μλͺ»λ κ²μΈμ§ λͺ¨λ₯΄κ² μ΅λλ€. λ¬Έμ κ° ν΄κ²°λ κ²μ²λΌ μ΄ ν°μΌμ λ«μλ€λ κ²μ λ§ν κ²λ μμ΅λλ€.
@strongui babel-plugin-importκ° μλνμ§ μμ΅λκΉ?
@abenhamdine μλμ. κ·Έλ¦¬κ³ μμ μ견μΌλ‘ νλ¨νλ κ²μ λ νΌμκ° μλλλ€.
μ΅μ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ μ¬μ ν μ΄ λ¬Έμ κ° λ°μν©λλ€.
λꡬλ μ§ μμ μ¬νμ μ°Ύμμ΅λκΉ(μ΄μμ μΌλ‘λ μ¬μ€μ μ΄ μλ)?
νμν λ μμ κ΅¬μ± μμμ λν μ νν CSSλ₯Ό κ°μ Έμ€λ λ° μ±κ³΅νμ΅λλ€.
import 'antd/lib/checkbox/style/index.css'
νμ§λ§ μ΄μ ν
μ΄λΈμ ꡬννλ €κ³ ν©λλ€. Tableμ λ§μ μ€νμΌμ μμ‘΄νλ―λ‘ λ€μν CSS μνΈλ₯Ό λͺ¨λ λ³λλ‘ κ°μ ΈμμΌ νμ΅λλ€. _μ μΈ_ μ λ ¬ κΈ°λ₯μ μν΄μλ antd/lib/icon
λ΄μ μ‘΄μ¬νμ§ μλ icon
CSSκ° νμν©λλ€. λμ μμ΄μ½ CSSκ° λ¦¬λλ μ
λκΈ° λλ¬Έμ κΈ°λ³Έ μ€νμΌ μνΈλ₯Ό κ°μ ΈμμΌ νμ΅λλ€.
import 'antd/lib/style/index.css'
μ΄κ²μ λ΄ μ±μ λλ¨Έμ§ λΆλΆμ μν₯μ λ―ΈμΉλ νμΌμ λλ€ βοΈ
μ΅μν CSS μνΈκ° κΈ°λ³Έ μνΈλ‘ 리λλ μ
λμ§ μλλ‘ λ§λ€ μ μμ΅λκΉ? (ν
μ΄λΈ μ λ ¬μ νμν icon
κ°μ?)
λν @afc163 μ΄ λ¬Έμ λ₯Ό λ€μ μ¬μμμ€. μμ§ ν΄κ²°λμ§ μμμ΅λλ€.
μ€λ λλ₯Ό μ½κ³ "WON'T FIX" νκ·Έλ₯Ό νμΈνμΈμ. μ΄κ²μ Ant.Dλ₯Ό κ΅¬μ± μμ λΌμ΄λΈλ¬λ¦¬λ‘ μ ννλ μλ² λλ κ΅¬μ± μμμΈ λͺ¨λ λν μ ν리μΌμ΄μ μ μ°¨λ¨νλ P0 λ²κ·Έμ λλ€. νκ·Έλ 'HEART BREAKING'μ΄μ΄μΌ ν©λλ€.
@afc163 μ΄κ² λλ체 μ μ κ³ μ³μ§λ κ±ΈκΉμ?? λ°μ μ² νκ³Ό λͺ¨λμ λμμΈμ ν΅μ¬μ κ΅¬μ± μμκ° λ€λ₯Έ κ΅¬μ± μμλ‘ λ²μ§μ§ μλλ‘ νλ κ²μ λλ€. μ΄κ²μ μ ν λ§μ΄ λμ§ μμ΅λλ€. λλ μκ°μ 보λ΄κ³ νΈλ¦¬ μ νμ λν CSSλ₯Ό μΆμΆνμΌλ©° λ€λ₯Έ κ²μ μν₯μ λ―ΈμΉμ§ μκ³ μλνλλ‘ ν μ μμκΈ° λλ¬Έμ κ°λ₯νλ€λ κ²μ μκ³ μμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό λ€μ μ΄λ©΄ +1μ λλ€. Material-UIμμ AntDλ‘ μ±μ μ ννλ €κ³ νλλ° μ΄κ²μ΄ μ§μ μ₯λ²½μ΄ λ©λλ€.
μ¬κ°λ΄ +1. babel-plugin-import
μ(λ) μλνμ§ μμ΅λλ€. λͺ¨λ tutsμ μ§μΉ¨μ μλνμ΅λλ€. λ΄ μ±μ μ 체 κΈκΌ΄μ λ³κ²½ν μ μμ΅λλ€ π±
blueprintjs palantir/blueprint#244 μ κ΄λ ¨ λ¬Έμ κ° μμμ΅λλ€.
ν κ°μ§ μ μμ css-byebyeλΌλ postcss νλ¬κ·ΈμΈμ μ¬μ©νλ κ²μ
λλ€.
https://github.com/AoDev/css-byebye
μ΄κ²μ μμ ν΄κ²°μ± μΌλ‘ λμμ΄ λ μ μμ΅λλ€.
νλ₯ν λΌμ΄λΈλ¬λ¦¬μ΄μ§λ§ μ¬μ©μλ₯Ό λνλ λμ°ν λ°©λ²μ λλ€. κΈ°λ³Έ κΈκΌ΄μ λ³κ²½ν΄μΌ νλ μ΄μ λ 무μμ λκΉ? κ·Έλ¦¬κ³ κΈκΌ΄κ³Ό μ€νμΌμ μ¬μ€μ ν λ°©λ²μ΄ μλ μ΄μ λ 무μμ λκΉ?
μ΄κ²μ μ°λ¦¬μ λκΈμ μ½κ³ νλ¨νλ λ§μ μ¬λλ€μ΄ μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ§ λͺ»νκ² ν©λλ€.
μ΄κ²μ΄ μΈμ΄/λ¬Ένμ λ¬Έμ μΈμ§λ λͺ¨λ₯΄κ² μ§λ§ μ΄ λΌμ΄λΈλ¬λ¦¬μ κ°λ°μ - μ°Έκ³ : μ무λ μ¬μ©νκ³ μΆμ§ μμ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λλ μλ―Έκ° λ¬΄μμ λκΉ? λλ£ κ°λ°μκ° λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκΈ° μ΄λ ΅κ² λ§λλ μ΄μ λ 무μμ λκΉ?
μ무λ μ¬μ©νκ³ μΆμ§ μμ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λλ μλ―Έλ 무μμ λκΉ? λλ£ κ°λ°μκ° λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκΈ° μ΄λ ΅κ² λ§λλ μ΄μ λ 무μμ λκΉ?
μ λΉν ν΄μ£ΌμΈμ.
λ§μ κ°λ°μμ μ€ννΈμ
μ΄ μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκ±°λ μ¬μ©νλ €κ³ ν©λλ€.
μ΄ λΌμ΄λΈλ¬λ¦¬λ μ€ν μμ€μ΄λ©° 무λ£μ
λλ€. μ¬μ©νκΈ° μ«μΌλ©΄ μ¬μ©νμ§ λ§μΈμ.
κ·Έκ²μ μμ νκ³ μΆλ€λ©΄ κ·Έκ²μ ν¬ν¬νκ±°λ PRμ μ μΆν μ μμ΅λλ€. ant-designμ μ μ§ λ³΄μλ κΈ°μ¬μ μ΄λ € μμ΅λλ€.
κ·Έλ¬λ μ¬κΈ°μ μν νμκ° μμ΅λλ€.
μ΄ λ¬Έμ λ λν μ°λ¦¬ νμ κ±°λ μ°¨λ¨κΈ°μ΄κΈ°λ ν©λλ€.
μ°λ¦¬λ νλ‘μ νΈμ μλ£λ λͺ¨λ μμ
μ μ¬λνμ§λ§ μ΄ λ¨μΌ λ¬Έμ λ‘ μΈν΄ μ¬μ©ν μ μμ΅λλ€.
κ·Έλ κΈ° λλ¬Έμ κ°κΉμ΄ μμΌ λ΄μ λ¬Έμ κ° λ€μ ν΄κ²°λκΈ°λ₯Ό λ°λΌλ©° μ΄ λ¬Έμ λ₯Ό κ³μ μΆμ νκ³ μμ΅λλ€.
μ, λλ λ§€μ° μ¨κ±΄νλ€. κ·Έλ¦¬κ³ μ λ μ¬κΈ°μ μμ νλ κ²μ΄ μλλλ€.
λλ λΉμ μ λΌμ΄λΈλ¬λ¦¬κ° λΉλ‘ νλ₯νλλΌλ λΆνμν λΆμμ©μ΄ μμ΄μλ μ λλ€λ μ μ μ£Όμλ₯Ό κΈ°μΈμ΄κ³ μμ΅λλ€. μλ₯Ό λ€μ΄ MomentJSλ₯Ό μ¬μ©νκ³ Klingonμμ λ μ§μ μκ°μ νμνκΈ° μμνλ€κ³ μμν΄ λ³΄μμμ€!
"μ€μ€λ‘ κ°λ"λ λ΅μ΄ μλλλ€. μ¬μ€ μ΄κ²μ΄ λ§μ μ€ν μμ€ νλ‘μ νΈμ μ¬νκ³ νμ¬ν μνμ λλ€.
μ°λ¦¬λ 볡μ‘ν μμ€ν μ μ€μ€λ‘ ꡬμΆνκ³ μμ΅λλ€. μ°λ¦¬λ μ¬κΈ°μμ μ μΈμ΄ μλλλ€. μ°λ¦¬λ λμκ΄μ μ΄μ©νκ³ μ°λ¦¬μ μΆμ κ³μνκ³ μΆμ΅λλ€. μ΅μν κΈ°λ³Έ κΈκΌ΄μ΄λ κΈκΌ΄ ν¬κΈ°λ₯Ό λ³κ²½νμ§ μλλ‘ λΌμ΄λΈλ¬λ¦¬μ μμ²νλ λ°©λ²μ΄ μμ΄μΌ ν©λλ€. κ·Έκ²μ΄ λμ μ¬κΈ° μλ λ€λ₯Έ μ¬λλ€μ΄ 묻λ μ λΆμ λλ€.
κ·λ¨Έκ±°λ¦¬κ° λκΈ°λ‘ μ ννκ³ μ΄λ¬ν λ¬Έμ λ₯Ό 무μνλλ‘ μ νν μ μμ΅λλ€. λ΄ λ§ λμ μ§μ€νκΈ°λ‘ μ ννκ±°λ μ¬κΈ° μ¬λλ€μ΄ λ§νλ λ΄μ©μ μ΄ν΄νκ³ λΆμμ© μμ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν μ μλ λ°©λ²μ μ 곡νλλ‘ μ νν μ μμ΅λλ€.
λΉμ μ΄ μ€λ μ΄κ³ λ²μνλ λμ νμ΄ λΉμ κ³Ό ν¨κ»νκΈ°λ₯Ό λ°λλλ€.
@kotpal μ λ λμν μ μμ΅λλ€. μ΄ ν λ‘ μ΄ "μ΄ κΈ°λ₯μ μΆκ°ν μ μμ΅λκΉ?" λλ "...μ΄λ©΄ μ’μ§ μμκΉμ?"μ κ΄ν κ²μ΄ μλλΌ λ¬Έμ κ·Έλλ‘ κ΅¬μ± μμκ° κΈλ‘λ² κΈ°λ₯μ μλ§μΌλ‘ λ§λ€μ΄μλ μ λλ€λ κ²μ μμ±μμκ² νμ μν€λ €λ κ²μ΄ λλμ΅λλ€. μν. λ§ κ·Έλλ‘ ReactJSμ λͺ¨λ λͺ¨λμ λμμΈμ ν΅μ¬ κ°λ μ 곡백μΌλ‘ λκ³ μμ΅λλ€.
κΈλ‘λ² ν λ§ λλ 무μΈκ°λ₯Ό μ 곡νμ§ μλ ν GLOBALμ μλ§μΌλ‘ λ§λ€μ§ λ§μμμ€.
@abenhamdine μ λ§μ μ΄ν΄ν©λλ€. νμ§λ§ @strongui μλ λμν©λλ€.
μλ§λ Antλ μ 체 κ²½νμ΄μ΄μΌ ν©λλ€. κ·Έλ¬λ μ€μ λ‘ λ§μ μ¬λλ€μ μ¬μ ν ββλ³κ²½ν μ μλ λ κ±°μ μ½λλ‘ μμ ν΄μΌ ν©λλ€. κ·Έλ¦¬κ³ μ΄ νλ‘μ νΈκ° μ΄μ μ½λμ μΆ©λνλ©΄ μ μ΄μ React(λλ μ΄μ μ μ¬ν λ€λ₯Έ νλ μμν¬)λ₯Ό μ¬μ©ν λμ λͺ¨λ μ΄μ μ μκ² λ©λλ€.
μ΄ λ¬Έμ κ° λ무 λ§μ μ¬λλ€μ΄ νλ‘μ νΈλ₯Ό μμ ν μ±ννλ κ²μ λ§λλ€λ©΄ μ°λ¦¬κ° ν¨κ» λͺ¨μ¬ νμκΈμ κ±Έ μ μμ΅λκΉ?
λλ μ€μ€λ‘ μ΄ λ¬Έμ λ₯Ό κ³ μΉ μ§μμ΄λ μκ°μ΄ μλ€λ κ²μ μκ³ μλλ°, κΈ°μ¬μλ€μ΄ κ·Έκ²μ κ³ μΉ λκΉμ§ 걸리λ μκ°μ 무μμ λκΉ? (μ, κΈ°λ₯μ΄ μλλΌ λ¬Έμ μ λλ€)
λλ antdμμ μ 곡νλ μ μ CSSλ₯Ό μ¬μ μνκ³ μ€νμΌμ΄ μ§μ λ jsxμ κ°μ νλ‘μ νΈλ₯Ό μ¬μ©νμ¬ μ΄λ μ λ μ±κ³΅νμ΅λλ€.
μ¬κΈ°μμ λ°°ν¬λ μ¬μ΄νΈλ₯Ό λ³Ό μ μμ΅λλ€! μΆμ : μμ
μ΄ μ§ν μ€μ
λλ€.
λλ λ°©κΈ κ°μ μν©μ μ²ν΄ μμΌλ©° @inverts λ° @corinnebrady (https://github.com/ant-design/ant-design/issues/4331#issuecomment)κ° μ€λͺ ν κ²κ³Ό λμΌν μ κ·Ό λ°©μμ μ¬μ©νμ¬ μ λΉν μ±κ³΅μ κ±°λκ³ μμ΅λλ€. -361421192 λ° https://github.com/ant-design/ant-design/issues/4331#issuecomment-365481037). λ°λΌμ μΌλΆ κ΅¬μ± μμλ λ€μκ³Ό κ°μ΅λλ€.
// ...
import Modal from 'antd/lib/modal'
import 'antd/lib/modal/style/index.css'
import AutoComplete from 'antd/lib/auto-complete'
import 'antd/lib/auto-complete/style/index.css'
import Form from 'antd/lib/form'
import 'antd/lib/form/style/index.css'
import 'antd/lib/select/style/index.css'
import Button from 'antd/lib/button'
import 'antd/lib/button/style/index.css'
// ... etc
μ΄κ²μ λλΆλΆμ antd κ΅¬μ± μμμμ μ΄λ μ λ μ μμ μΌλ‘ μλνμ§λ§ νΉμ CSS νμΌκ³Ό μ°κ²°λμ§ μμ λ€λ₯Έ κ΅¬μ± μμκ° μμΌλ©° ν΄λΉ μ€νμΌμ μ μ κ΅¬μ± μμμμλ§ μ°Ύμ μ μμ΅λλ€. icon
κ΅¬μ± μμκ° μλνλλ‘ νλ €λ©΄ μ μ νμΌμμ λ΄ μ€νμΌμνΈλ‘ λͺ¨λ μμ΄μ½ κ΄λ ¨ μ€νμΌμ μλμΌλ‘ 볡μ¬ν΄μΌ νμ΅λλ€. μ μ§ κ΄λ¦¬μ: antd/lib/icon/style/index.css
λ₯Ό ν¬ν¨νλ PRμ μλ½νμκ² μ΅λκΉ?
import 'antd/lib/spin/style/index.less'
μ κ°μ΄ κ°λ³ νμΌλ μ κ² ν¬ν¨ν μ μλ κ² κ°μ΅λλ€.
μ΄ λ¬Έμ λ₯Ό 곡μμ μΌλ‘ ν΄κ²°ν κ³νμ΄ μμ΅λκΉ?
μ¬μ ν λ¬Έμ μ§λ§ @reyronald μ κ°μ μ°Έμ‘° κ°μ Έμ€κΈ°λ‘ μμ νλ €κ³ ν©λλ€.
λλ Icon
μ μ€νμΌ λ¬Έμ μ κ°ν μμ΅λλ€.
@reyronald ν보 λΆνλλ €λ λ κΉμ?
μ΄κ²μΌλ‘ κ³ ν΅λ°λ μ¬λλ€μ μ μ₯μμμ μ§μ ν¨ν€μ§λ₯Ό μΆκ°νμ¬ λ΄ ν¬ν¬λ₯Ό μλνκ³ μΆμ΄ν κ²μ λλ€.
yarn add github:serguzest/ant-design#3.4.1-NoCssPollution
λλ
npm install github:serguzest/ant-design#3.4.1-NoCssPollution
base.lessλ§ μ μΈνκ³ λ€λ₯Έ μμ μμ΄ λΉλνμ΅λλ€. μ κ²½μ°μλ μλνλ©° λ§μ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μμ΅λλ€. νΉν νλ‘μ νΈμ μ λλ‘ μ¬μ€μ λ μ€νμΌμνΈκ° μλ κ²½μ° νΉν μΌλΆ ꡬμ±μμμ λͺ¨μμ΄ κΉ¨μ§ κ²μ λλ€. #4546
μλ
νμΈμ @afc163 μ λ μ¬κΈ° λ€μ΄κ°μ μ΄ λ¬Έμ λ₯Ό μμ νκΈ° μν΄ μμ±μ μΆκ°νκ³ μΆμ΅λλ€. μ°λ¦¬λ λ§μ λμμΌλ‘ λκ·λͺ¨ μ ν리μΌμ΄μ
μ ꡬμΆνκ³ μΌλΆ λμμ νμ¬ μ¬μ΄νΈμ λ‘λλ©λλ€. antd
κΈλ‘λ² CSSλ₯Ό λ°©ν΄νλ κ²μ μ°λ¦¬μκ² λ¬Έμ κ° λ©λλ€. μλνλ©΄ μ°λ¦¬λ κ²°κ΅ ν΄λΉ νμ¬ μ¬μ΄νΈμ CSS μ¬μ€μ λ° κΈκΌ΄μ λ λ €λ²λ¦¬κΈ° λλ¬Έμ
λλ€. μ°λ¦¬λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬λνκ³ μ μ§ κ΄λ¦¬μκ° μ°λ¦¬μκ² λ°©ν₯μ μλ €μ€λ€λ©΄ μμ μ κΈ°μ¬νκ³ μΆμ΅λλ€. λ€μ μ΄κ±°λ λνλ₯Ό λ€λ₯Έ λ―Έν΄κ²° λ¬Έμ λ‘ μλ΄νμΈμ! κ°μ¬ ν΄μ
κ·Έλμ μ°λ¦¬λ μΉν© μ‘°μμ μ¬μ©νμ¬ λ체 λ νμΌμ λ‘λν¨μΌλ‘μ¨ (μ μ΄λ μ§κΈκΉμ§λ) μ΄ μμ μ μνν μ μμμ΅λλ€.
new webpack.NormalModuleReplacementPlugin(
/node_modules\/antd\/lib\/style\/index\.less/,
path.resolve(rootDir, 'src/styles.less')
),
src/style.less
νμΌμ index.less
νμΌκ³Ό λμΌν νμΌμ λ‘λνμ§λ§ μ΅μμ μ νκΈ° λ²μ λ΄μμ λ‘λν©λλ€.
#root {
<strong i="11">@import</strong> '~antd/lib/style/core/index.less';
<strong i="12">@import</strong> '~antd/lib/style/themes/default.less';
}
κ²°κ³Όλ λͺ¨λ "μ μ" μ€νμΌμ΄ #root
λ²μλ‘ μ μ©λλ€λ κ²μ
λλ€.
`#λ£¨νΈ κΈ°μ¬,
λμ€νλ μ΄: λΈλ‘;
}
`
λ±...
μ΄κ²μ΄ λκ΅°κ°μκ² λμμ΄λκΈ°λ₯Ό λ°λλλ€.
μ¬λ¬λΆ, μ λ§ μ§μ¦λ©λλ€. μ΄ μ€νμΌ λμμ μΈκ³μ μμ€μ UI λΌμ΄λΈλ¬λ¦¬μμ κΈ°λν μ μλ κ²μ λλ€.
μ¬λλ€μ΄ νΌλνμ§ μλλ‘ μ΅μν λ¬Έμμμ μ μ μ¬μ€μ μ λν΄ μΈκΈνμμμ€. λλ κ°λ³ μ€νμΌ λ° μμ΄μ½ κ°μ Έμ€κΈ°μ λν λ μνΌκ° ν¬ν¨λ "λ κ±°μ μΉ μ¬μ΄νΈμ ν΅ν©" κ°μ΄λκ° λμμ΄ λ κ²μ λλ€.
λλ μ΄ λ¬Έμ κ° λ«ν ν μ μ§ κ΄λ¦¬μκ° ν λ‘ μ μ°Έμ¬νμ§ μμκΈ° λλ¬Έμ μ΄ λ¬Έμ μ ꡬλ μ μ·¨μνλ€κ³ μκ°ν©λλ€. λ°λΌμ μ λ¬Έμ λ₯Ό μ΄κ±°λ μ§μ pingνκ±°λ PRμ μ΄μ§ μλ ν μ΄μ λν 곡μμ μΈ μ§μμ λ°μ§ λͺ»ν κ²μ λλ€.
λ§μΉ¨λ΄ λͺ¨λ κ·μΉμ μ¬μ©μ μ μ ν΄λμ€κ° μ λμ΄λ‘ λΆμ μλ³Έ antd.cssλ₯Ό κΈ°λ°μΌλ‘ μ CSS νμΌμ μμ±νμ¬ μ΄ λ¬Έμ λ₯Ό μ°ννλ λ°©λ²μ μ°Ύμμ΅λλ€. λ΄ μ루μ
μ PostCSS, Gulp λ° postcss-prefixwrap
νλ¬κ·ΈμΈμ μ¬μ©ν©λλ€.
https://gist.github.com/sbusch/a90eafaf5a5b61c6d6172da6ff76ddaa
μλ²½νμ§λ μμ§λ§ λλκ²λ μ μλν©λλ€. μ μ΄λ λ΄ νμμλ ;-)
μμ§λ .antd-ns
μ λμ¬κ° λΆμ antd
CSSμ κΈ°μ±ν λ²μ λ ν¬ν¨ν©λλ€("λ€μμ€νμ΄μ€"μ μ½μλ‘ "ns").
λ
ΈνΈ:
λμκ² μ€μν μꡬ μ¬νμ μλνλμ΄ λͺ¨λ μλ‘μ΄ ant 릴리μ€μ λν΄ μ λμ¬κ° λΆμ CSSλ₯Ό μ½κ² μμ±ν μ μλ€λ κ²μ
λλ€.
postcss-prefixwrap
λ antd
ν€νλ μ μ λλ©μ΄μ
μ μ μ§νκΈ° μν λ΄ ν¨μΉκ° ν¬ν¨λ λ²μ 1.3.0 μ΄μμ΄μ΄μΌ ν©λλ€.λκΈ/νΌλλ°±μ νμ κ°μ¬ν©λλ€!
νλ₯ν PostCSS postcss-prefixwrap νλ¬κ·ΈμΈμΌλ‘ μ΄κ²μ κ°λ₯νκ² ν΄μ€ @dbtedman μκ² κ°μ¬λ립λλ€.
λκΈ/νΌλλ°± κ°μ¬ν©λλ€!
λ§μΉ¨λ΄ λͺ¨λ κ·μΉμ μ¬μ©μ μ μ ν΄λμ€κ° μ λμ΄λ‘ λΆμ μλ³Έ antd.cssλ₯Ό κΈ°λ°μΌλ‘ μ CSS νμΌμ μμ±νμ¬ μ΄ λ¬Έμ λ₯Ό μ°ννλ λ°©λ²μ μ°Ύμμ΅λλ€.
μ΄κ²μ IMHOμ κ°μ₯ νμ€ν μ루μ
μ
λλ€.
κ°μΈμ μΌλ‘ νμ¬λ‘μλ μ΄κ²μ΄ νμνμ§ μμ§λ§ λκ΅°κ°κ° λ μ μ νμΌμ κ° CSS κ·μΉ μμ ν΄λμ€ μ΄λ¦μ΄ μ μ λ³μ(μ: .@{scope}
)λ₯Ό μΆκ°νκΈ° μν΄ PRμ μ μΆνλ©΄ λͺ¨λ μ¬λμκ² μ μ΅ν κ²μ
λλ€.
κΈ°λ³Έμ μΌλ‘ μ΄ λ³μλ νμ¬ λμμ΄ μ€λ¨λλ κ²μ λ°©μ§νκΈ° μν΄ λΉμ΄ μμ΅λλ€.
μλ₯Ό λ€μ΄ μ€νμΌμ λΆλ¦¬νλ €λ©΄ antd
λ‘ λ³μλ₯Ό μ€μ νκΈ°λ§ νλ©΄ λ©λλ€.
λλ μ΄ μ루μ μ΄ μ μ§ λ³΄μμλ€μκ² λ°μλ€μ¬μ§ μ μκ³ μμΌλ‘ λμκ° μ μμ κ²μ΄λΌκ³ μκ°ν©λλ€.
λ€μμ λλ₯Ό μν΄ μΌν ν΄κ²° λ°©λ²μ
λλ€. styles.less
νμΌμ λ§λ€μμ΅λλ€.
// Doing what antd/lib/style/core/index.less does
// but without loading "base" which overwrites global styles
<strong i="7">@import</strong> '~antd/lib/style/mixins/index.less';
<strong i="8">@import</strong> '~antd/lib/style/core/iconfont.less';
<strong i="9">@import</strong> '~antd/lib/style/core/motion.less';
<strong i="10">@import</strong> '~antd/lib/menu/style/index.less';
<strong i="11">@import</strong> '~antd/lib/dropdown/style/index.less';
<strong i="12">@import</strong> '~antd/lib/button/style/index.less';
<strong i="13">@import</strong> '~antd/lib/checkbox/style/index.less';
<strong i="14">@import</strong> '~antd/lib/grid/style/index.less';
.babelrc
μ λ€μμ΄ μμ΅λλ€.
"plugins": [
[
"import",
{
"libraryName": "antd",
"style": false,
}
]
]
https://ant.design/docs/react/getting-started#Import -on-Demand λ° https://github.com/ant-design/babel-plugin-import μ μ€λͺ λ λλ‘ JS λΉλ ν¬κΈ° μ΅μ ν
λ§μΆ€ν μ€νμΌλ§μ μν΄ μΉν© ꡬμ±μ λ€μκ³Ό κ°μ΄ λ³κ²½νμ΅λλ€.
module: {
rules: [{
test: /\.less$/,
use: [{
loader: 'style-loader'
}, {
loader: 'css-loader'
}, {
loader: 'less-loader',
options: {
javascriptEnabled: true,
modifyVars: {"primary-color": "#ed1c24"},
}
}]
}]
}
https://ant.design/docs/react/customize-theme#1)-Using-theme-property-(recommended-way)μ μ€λͺ λ λλ‘
BTW: μ²λ¦¬μμ μ΄ "base.less" νμΌμ 무μνκΈ° μν΄ new webpack.IgnorePlugin(/style\/core\/base/)
λ₯Ό μ¬μ©νλ €κ³ μλνμ§λ§ μλνμ§ λͺ»νμ΅λλ€. μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€. λ΄ κ°μ€μ WebpackμΌλ‘ μ§μ μ²λ¦¬νμ§ μκ³ LESSλ‘ μ²λ¦¬νκΈ° λλ¬Έμ
λλ€.
κ·Έ κ°μΉλ₯Ό μν΄ antd.cssλ₯Ό μλμΌλ‘ νΈμ§νμΌλ©° λ΄κ° μ¬μ©νλ antd κ΅¬μ± μμλ₯Ό μμμν€μ§ μκ³ μμΉ μλ μ€νμΌμ μ κ±°ν μ μμμ΅λλ€.
@paneq μ λ νμ¬ κ·Έλ κ² νκ³ μμ΅λλ€. babel-plugin-import
μ μ€νμΌ μ΅μ
μ μ€νμΌμ ν¬ν¨ν μ§ μ¬λΆλ₯Ό κ²°μ ν μ μλ ν¨μμΌ μλ μμ΅λλ€. λλ λ¨μ§ κ·Έκ²μ μλνμ§ μμλ€. κ·Έκ²μ λλ²κΉ
ν΄μΌ ν κ²μ
λλ€ ...
μ΄μ©λ©΄ λ΄κ° κ·Έ μ΅μ
μ μλͺ» ν΄μνκ³ μμ΅λκΉ?
@paneq λΉμ μ΄ ν μΌμ 볡μ¬νκ³ μ§κΈκΉμ§ μλνλ κ² κ°μ§λ§ μ΄λ€ κ΅¬μ± μμμ ν΄λΉ κΈλ‘λ² CSSκ° νμνμ§ νμΈνκΈ°μ μΆ©λΆν κ΅¬μ± μμλ₯Ό μλνμ§ μμμ΅λλ€. κ°μ¬ ν΄μ
@vthinkxie
μλ νμΈμ, .antλ‘ μμνλ λͺ¨λ μμλ₯Ό ββμΌμΉμν€κ³ μ€νμΌμ ν λΉνλ κ²μ΄ κ°λ₯ν΄μΌ ν©λλ€.
*[ν΄λμ€^='κ°λ―Έ-']{
μμ ν¬κΈ° μ‘°μ : ν
λ리 μμ;
-μΉν· ν κ°μ‘° νμ μμ: rgba(0, 0, 0, 0); // λͺ¨λ°μΌ μ¬ν리μ ν νμ΄λΌμ΄νΈ μμ μ κ±°
}
λΈλΌμ°μ κ° νΈνμ±μ΄ μμ΄μΌ νλ©° ꡬννλ λ° μ€λ μκ°μ΄ κ±Έλ¦¬μ§ μμμΌ ν©λλ€.
κ·Έλμ μ°λ¦¬λ μΉν© μ‘°μμ μ¬μ©νμ¬ λ체 λ νμΌμ λ‘λν¨μΌλ‘μ¨ (μ μ΄λ μ§κΈκΉμ§λ) μ΄ μμ μ μνν μ μμμ΅λλ€.
new webpack.NormalModuleReplacementPlugin( /node_modules\/antd\/lib\/style\/index\.less/, path.resolve(rootDir, 'src/styles.less') ),
src/style.less
νμΌμindex.less
νμΌκ³Ό λμΌν νμΌμ λ‘λνμ§λ§ μ΅μμ μ νκΈ° λ²μ λ΄μμ λ‘λν©λλ€.
#root { <strong i="12">@import</strong> '~antd/lib/style/core/index.less'; <strong i="13">@import</strong> '~antd/lib/style/themes/default.less'; }
κ²°κ³Όλ λͺ¨λ "μ μ" μ€νμΌμ΄
#root
λ²μλ‘ μ μ©λλ€λ κ²μ λλ€.
μ¬μ© μ€μΈ λ‘λκ° μ μ λ²μ μ 무μμ λκΉ? 3.0.0μμλ§ μλνλ κ² κ°μ΅λκΉ? 보λ€. μ: https://github.com/webpack-contrib/less-loader/issues/184
λν μ΄ ν΄κ²° λ°©λ²μ μ΄λ€ λ²μ μ antdλ₯Ό μ¬μ©νκ³ μμμ΅λκΉ? λ΄κ° 묻λ μ΄μ λ [email protected] λ° [email protected] μΌλ‘λ μ±κ³΅νμ§ λͺ»νκΈ° λλ¬Έμ λλ€(webpackμ λ³κ²½ ν ν΄κ²°νλ λ° λ¬Έμ κ° μμμ΅λλ€). ..
μ΄κ²μ΄ λκ΅°κ°μκ² λμμ΄ λλμ§ λͺ¨λ₯΄κ² μ§λ§ λ€μμ μ¬μ© μ€μΈ κ΅¬μ± μμμ λν΄μλ§ CSSλ₯Ό κ°μ Έμ€λ λ° λμμ΄ λμμ΅λλ€.
import Modal from 'antd/lib/modal'
import 'antd/lib/modal/style/css'
μ΄κ²μ΄ λκ΅°κ°μκ² λμμ΄ λλμ§ λͺ¨λ₯΄κ² μ§λ§ λ€μμ μ¬μ© μ€μΈ κ΅¬μ± μμμ λν΄μλ§ CSSλ₯Ό κ°μ Έμ€λ λ° λμμ΄ λμμ΅λλ€.
import Modal from 'antd/lib/modal'
import 'antd/lib/modal/style/css'
μ, μ΄κ²μ λ§μ κ΅¬μ± μμμμ μ λλ‘ μλνλ κ² κ°μ΅λλ€. κ·νμ λ§μΌλ¦¬μ§λ λ€λ₯Ό μ μμ§λ§ μ μ΄λ Selectμλ κ΅¬μ± μμ κ³ μ μ μ€νμΌ μ΄μμ΄ νμν©λλ€. μ ν νλͺ©μ "μ κ±°" μμ΄μ½μ κ·Έλ μ§ μμΌλ©΄ λ λλ§λμ§ μμ΅λλ€. λ¬Έμ λ₯Ό μμ ν μΆμ ν μκ°μ΄ μμμ§λ§ μλ§λ μ¬μν λ¬Έμ μΌ κ²μ λλ€. λ°λΌμ μΌλΆ κ΅¬μ± μμμ κΈ°λ³Έ μ€νμΌμμ μΌλΆ μ€νμΌμ λͺ¨λ°©ν΄μΌ ν μλ μμ΅λλ€.
μ΄ μ΅μ μ΄ μλ²½νμ§λ μμ§λ§ λ§μ κ΅¬μ± μμμμ μ μλν μ μμ΅λλ€. μ¬μ©μ μ μ μ€νμΌμ μ λ°μ΄νΈλ‘ μΈν΄ μ€λ¨λ μνμ΄ μμ§λ§ μ λ°μ΄νΈλ₯Ό μννλ €λ μκΈ°λ₯Ό λΆλͺ ν μ μ΄ν μ μμ΅λλ€.
λ΄κ° μ°λ¦¬ μ‘°μ§μ μν΄ μ°Ύμ μ΅κ³ μ μ루μ μ antdμ μ 체 CSS μνΈλ₯Ό ν¬ν¨νκ³ antd μ΄λ¦μ΄ μ§μ λμ§ μμ μ€νμΌμ μν₯μ λ―ΈμΉλ μ€νμΌμ μ κ±°νλ κ²μ λλ€. λ§μΌλ¦¬μ§λ λ€λ₯Ό μ μμΌλ©° νμ¬ κ°μ Έμ€λ _λͺ¨λ _ μ€νμΌμ λ¨μ μ΄ λΆλͺ ν μμ΅λλ€. κ·Έλ¬λ κ·Έκ²μ μ μλνκ³ μ§κΈ μ½ λ λ¬ λμ κ·Έλ κ² ν νμ μ΄λ€ λ¬Έμ λ λ³΄μ§ λͺ»νμ΅λλ€.
@jaleikas
μ΄μ λν ν΄κ²° λ°©λ²μ μ°Ύμμ΅λκΉ? λ΄κ° λ§ν μ μλ ν [email protected] μ λ¬Έμ λ μ¬μ ν ν΄κ²°λμ§ μμμΌλ―λ‘ NormalModuleReplacementPluginμΌλ‘ μ μλ μμ μ¬νμ΄ μλνμ§ μμ΅λλ€. κ·Έ μ루μ
μ μλμΌλ‘ μ¬μ μνκ³ λ²μλ₯Ό μ§μ ν μ μκΈ° λλ¬Έμ μ€μ λ‘ κ°μ₯ μ’μ μ루μ
μΈ κ² κ°μ΅λλ€.
λλ λΉμ κ³Ό κ°μ κ²μ μλνμ¬ λ λ‘λλ₯Ό λ€μ΄ κ·Έλ μ΄λνμ§λ§ webpack ν΄κ²°μ΄ μλνμ§ μμ΅λλ€.
μ¬κΈ°μμ [email protected] λ₯Ό μ¬μ©ν©λλ€.
μ΄ λ¬Έμ λ‘ κ³ ν΅λ°λ μ¬λλ€μ μ μ₯μμμ μ§μ ν¨ν€μ§λ₯Ό μΆκ°νμ¬ λ΄ ν¬ν¬λ₯Ό μλν μ μμ΅λλ€.
yarn add github:serguzest/ant-design#3.4.1-NoCssPollution
λλ
npm install github:serguzest/ant-design#3.4.1-NoCssPollution
λ² μ΄μ€λ§ λ²λ¦¬κ³ λ€λ₯Έ μμ μμ΄ μ§μμ΅λλ€. μ κ²½μ°μλ μλνμ§λ§ λ§μ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μμ΅λλ€. νΉν νλ‘μ νΈμ μ μ ν μ¬μ€μ μ€νμΌ μνΈκ° μμ§ μλ κ²½μ° μΌλΆ κ΅¬μ± μμμ μν₯μ λ°μ μ μμ΅λλ€. #4546
μ΄κ²μ λλ₯Ό μν΄ μλν©λλ€
μ΄κ²μΌλ‘ κ³ ν΅λ°λ μ¬λλ€μ μ μ₯μμμ μ§μ ν¨ν€μ§λ₯Ό μΆκ°νμ¬ λ΄ ν¬ν¬λ₯Ό μλνκ³ μΆμ΄ν κ²μ λλ€.
yarn add github:serguzest/ant-design#3.4.1-NoCssPollution
λλ
npm install github:serguzest/ant-design#3.4.1-NoCssPollution
base.lessλ§ μ μΈνκ³ λ€λ₯Έ μμ μμ΄ λΉλνμ΅λλ€. μ κ²½μ°μλ μλνλ©° λ§μ κ΅¬μ± μμλ₯Ό μ¬μ©νμ§ μμ΅λλ€. νΉν νλ‘μ νΈμ μ λλ‘ μ¬μ€μ λ μ€νμΌμνΈκ° μλ κ²½μ° νΉν μΌλΆ ꡬμ±μμμ λͺ¨μμ΄ κΉ¨μ§ κ²μ λλ€. #4546
μ΄ μ루μ μ μ£Όμ μ κ°μ¬ν©λλ€!
μ΄μ λν ν΄κ²° λ°©λ²μ μ°Ύμμ΅λκΉ? λ΄κ° λ§ν μ μλ ν [email protected] μ λ¬Έμ λ μ¬μ ν ν΄κ²°λμ§ μμμΌλ―λ‘ NormalModuleReplacementPluginμΌλ‘ μ μλ μμ μ¬νμ΄ μλνμ§ μμ΅λλ€. κ·Έ μ루μ μ μλμΌλ‘ μ¬μ μνκ³ λ²μλ₯Ό μ§μ ν μ μκΈ° λλ¬Έμ μ€μ λ‘ κ°μ₯ μ’μ μ루μ μΈ κ² κ°μ΅λλ€.
λλ antd μ¬μ©μ μ€λ¨νκ³ μ€νμΌμ΄ μ§μ λμ§ μμ κ΅¬μ± μμ(μ: rc-switch)λ₯Ό μ ννκΈ°λ‘ κ²°μ νμ΅λλ€. λ¬Έμ λ λλΆλΆμ "μ€νμΌμ΄ μ§μ λμ§ μμ" κ΅¬μ± μμκ° λμ°νκ±°λ λ¬Έμνλμ§ μμμΌλ©° μΌλΆλ λ€λ₯΄κ² λμνλ κ²μ²λΌ 보μ΄λ―λ‘ λλΆλΆ ν¬κΈ°νκ³ λ€λ₯Έ κ³³μ μ°Ύμμ΅λλ€...
μλ νμΈμ, .antλ‘ μμνλ λͺ¨λ μμλ₯Ό ββμΌμΉμν€κ³ μ€νμΌμ ν λΉνλ κ²μ΄ κ°λ₯ν΄μΌ ν©λλ€.
*[ν΄λμ€^='κ°λ―Έ-']{
μμ ν¬κΈ° μ‘°μ : ν λ리 μμ;
-μΉν· ν κ°μ‘° νμ μμ: rgba(0, 0, 0, 0); // λͺ¨λ°μΌ μ¬ν리μ ν νμ΄λΌμ΄νΈ μμ μ κ±°
}λΈλΌμ°μ κ° νΈνμ±μ΄ μμ΄μΌ νλ©° ꡬννλ λ° μ€λ μκ°μ΄ κ±Έλ¦¬μ§ μμμΌ ν©λλ€.
@tylik1 , κ°μ¬ν©λλ€! λλ¨Έμ§ μ μ μ±κ³Ό μΌμΉνλλ‘ κΈκΌ΄ λͺ¨μμ μμ ν΄μΌ νμ΅λλ€. μ΄κ²μ λλ₯Ό μμ ν ꡬνμ΅λλ€.
μ΄κ²μ΄ λκ΅°κ°μκ² λμμ΄ λλμ§ λͺ¨λ₯΄κ² μ§λ§ λ€μμ μ¬μ© μ€μΈ κ΅¬μ± μμμ λν΄μλ§ CSSλ₯Ό κ°μ Έμ€λ λ° λμμ΄ λμμ΅λλ€.
import Modal from 'antd/lib/modal'
import 'antd/lib/modal/style/css'
κ·Έκ²μ λ€μκ³Ό κ°μ΄ λλ₯Ό μν΄ μΌν©λλ€.
import Icon from 'antd/lib/icon';
import 'antd/lib/icon/style/index.css';
λΆννλ μ΄κ²μ μΌ μ€ν νΌμ λλ€. λ μ§ μ ν λκ΅¬κ° μ§κΈκΉμ§ λ΄κ° μ°Ύμ μ μλ μ΅κ³ μμλ λΆκ΅¬νκ³ Antdλ₯Ό ꡬννμ§ μμ κ²μ λλ€.
μ°λ¦¬λ νμ¬ μ°λ¦¬ νμ¬μ λ°μ κ΅¬μ± μμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύκ³ μμΌλ©° μ΄κ²μ μ°λ¦¬μκ²λ μ°¨λ¨ λ¬Έμ μ΄λ©° μλ§λ κ·Έ λλ¬Έμ antλ₯Ό μ¬μ©νμ§ μμ κ²μ λλ€.
μ°λ¦¬λ λν νλ₯ν ν λ§ μ΅μ μ΄ μλ react MUIλ₯Ό μ΄ν΄λ³΄κ³ μμ΅λλ€. μλ§λ κ·Έλ€μ΄ μ΄λ»κ² νκ³ λΉμ·ν κ²μ ꡬννλμ§ λ³Ό μ μμ κ²μ λλ€.
λλ https://www.npmjs.com/package/patch-package λ₯Ό μ¬μ©νμ¬ μ£Όμμ λ¬μμ΅λλ€.
// import 'normalize.css/normalize.css';
antd-mobile/es/style/index.js
λΆν°
μ λͺ©μ μ next.js
λ₯Ό λΉλνλ κ²μ΄μμ΅λλ€. κ·Έλμ μ κ²½μ°μλ ν€λμ CND λ§ν¬λ₯Ό λμ ν¬ν¨μμΌ°μ΅λλ€.
2020λ , μΈλ₯λ μ£½κ³ , μ½λ‘λλ°μ΄λ¬μ€, κ°λ―Έ λμμΈμ νλ‘μ νΈμ κΈλ‘λ² μ€νμΌμ μΆκ°νμ΅λλ€...
#9363μμ μΆμ
κ°μ₯ μ μ©ν λκΈ
κ·Έλλ λμ°ν λμμΈμ λλ€.