Skip to content

Commit 8aa9472

Browse files
kaorioskazupon
authored andcommitted
Japanese Translation: ja/css.md (#19)
* Translate css.md via GitLocalize * Translate css.md via GitLocalize * Update css.md Remove style closing tags * Translate css.md via GitLocalize * Update css.md
1 parent 0ccbc90 commit 8aa9472

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

Diff for: ja/css.md

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# CSS の管理
2+
3+
CSS を管理するためのおすすめの方法は、シンプルに単一ファイルコンポーネントである `*.vue` の中で `<style>`を使うことです。これは以下を提供します:
4+
5+
- 関連するコンポーネントのスコープ付き CSS
6+
- プリプロセッサや PostCSS を活用する機能
7+
- 開発時のホットリロード
8+
9+
さらに重要なことは、`vue-loader` によって内部的に使われている `vue-style-loader` はサーバーレンダリングのためのいくつかの特別な機能を持っています:
10+
11+
- クライアントとサーバーのためのユニバーサル変換処理の体験
12+
- `bundleRenderer` を使用した時の自動的なCSS評価
13+
14+
もしサーバレンダリングで使用するなら、コンポーネントの CSS はHTMLに集められてインライン化されます ( `template` オプションを使用していれば自動で扱われます ) 。クライアント上で、コンポーネントが初めて使用されたとき、`vue-style-loader` は既にそのコンポーネントにサーバーインラインCSSがあるかチェックします。もし存在しない場合、そのCSSは動的に `<style>` タグ経由で注入されます。
15+
16+
- 共通する CSS の抽出
17+
18+
この設定は [`extract-text-webpack-plugin`](https://github.com/webpack-contrib/extract-text-webpack-plugin) を使ってメインチャンクのCSSを個別のCSSに抽出することをサポートします ( `template` で自動注入されます ) 。これは、ファイルが個々にキャッシュされることをゆるしています。共通するCSSがたくさんある場合にこの方法をおすすめします。
19+
20+
非同期コンポーネントの CSS は JavaScript の文字列としてインライン化されたままになり、`vue-style-loader` によって扱われます。
21+
22+
## CSS 抽出の有効化
23+
24+
`*.vue` から CSS を抽出するために、`vue-loader``extractCSS` オプションを使います ( `vue-loader>=12.0.0` が必要 ) :
25+
26+
```js
27+
// webpack.config.js
28+
const ExtractTextPlugin = require('extract-text-webpack-plugin')
29+
// CSS extraction should only be enabled for production
30+
// so that we still get hot-reload during development.
31+
const isProduction = process.env.NODE_ENV === 'production'
32+
module.exports = {
33+
// ...
34+
module: {
35+
rules: [
36+
{
37+
test: /\.vue$/,
38+
loader: 'vue-loader',
39+
options: {
40+
// enable CSS extraction
41+
extractCSS: isProduction
42+
}
43+
},
44+
// ...
45+
]
46+
},
47+
plugins: isProduction
48+
// make sure to add the plugin!
49+
? [new ExtractTextPlugin({ filename: 'common.[chunkhash].css' })]
50+
: []
51+
}
52+
```
53+
54+
上記の設定は `*.vue` ファイルのスタイルのみに適用されますが、外部 CSS を Vue コンポーネントにインポートするために `<style src="./foo.css"></style>` を使うことができます。
55+
56+
もし `import 'foo.css'` のように JavaScriptからCSSをインポートしたいならば、適切な loader の設定が必要です:
57+
58+
```js
59+
module.exports = {
60+
// ...
61+
module: {
62+
rules: [
63+
{
64+
test: /\.css$/,
65+
// important: use vue-style-loader instead of style-loader
66+
use: isProduction
67+
? ExtractTextPlugin.extract({
68+
use: 'css-loader',
69+
fallback: 'vue-style-loader'
70+
})
71+
: ['vue-style-loader', 'css-loader']
72+
}
73+
]
74+
},
75+
// ...
76+
}
77+
```
78+
79+
## 依存関係からのスタイルのインポート
80+
81+
NPM 依存で CSS をインポートするときに気を付けることがいくつかあります:
82+
83+
1. サーバービルドで外部化しないでください。
84+
2. もし CSS抽出 + `CommonsChunkPlugin` でベンダー抽出を使用している場合、抽出されたベンダーのチャンクに抽出された CSS があれば、`extract-text-webpack-plugin` に問題が発生します。この問題を解決するためには、ベンダーのチャンクに CSS ファイルを含めないでください。クライアント側の webpack の設定例です:
85+
86+
```js
87+
module.exports = {
88+
// ...
89+
plugins: [
90+
// it is common to extract deps into a vendor chunk for better caching.
91+
new webpack.optimize.CommonsChunkPlugin({
92+
name: 'vendor',
93+
minChunks: function (module) {
94+
// a module is extracted into the vendor chunk when...
95+
return (
96+
// if it's inside node_modules
97+
/node_modules/.test(module.context) &&
98+
// do not externalize if the request is a CSS file
99+
!/\.css$/.test(module.request)
100+
)
101+
}
102+
}),
103+
// extract webpack runtime & manifest
104+
new webpack.optimize.CommonsChunkPlugin({
105+
name: 'manifest'
106+
}),
107+
// ...
108+
]
109+
}
110+
```

0 commit comments

Comments
 (0)