Nó sẽ đi theo ba bước;
trước tiên, bạn sẽ cần hai trình tải và plugin; có tên là css-loader
và style-loader
và extract-text-webpack-plugin
tương ứng.
Sau đó, cấu hình của bạn có thể trông giống như sau:
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const path = require('path');
module.exports = {
entry: {
app: './src/index.js'
},
output: {
path: 'dist',
filename: 'js/[name]-bundle.js'
},
devtool: "cheap-source-map",
resolveLoader: {
modules: [
'node_modules',
path.join(__dirname, '../node_modules'),
]
},
module: {
loaders: [
{
test: /.css?$/,
loader: ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
exclude: /node_modules/
}
]
},
plugins: [
new ExtractTextPlugin("css/[name].css"),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
screw_ie8: true,
conditionals: true,
unused: true,
comparisons: true,
sequences: true,
dead_code: true,
evaluate: true,
join_vars: true,
if_return: true
},
output: {
comments: false
}
}),
]
}
Và sau đó trong tập tin nhập của bạn, yêu cầu họ như require('./style.css');
Hãy nhớ rằng, nó sẽ đi theo con đường như là nguồn của bạn.
Nếu bạn đang tải các tệp phông chữ và hình ảnh trong css, bạn có thể cần plugin file-loader
cũng sẽ sao chép tất cả nội dung trong thư mục.
Các cấu hình tập tin-loader sẽ trông giống như:
{
test: /.png?$/,
loader: 'file-loader?name=img/[name].[ext]',
exclude: /node_modules/
}
Các UgligyJsPlugin
cũng sẽ rút gọn CSS.
Có cần phải chỉ định tất cả các tệp css trong mục nhập không? – Bonomi
Phải, vì một tệp css sẽ không bao gồm một tệp khác. Vì vậy, người ta phải viết nó bằng tay. Trong trường hợp tệp JS, cần một điểm vào và tất cả các tệp js khác được nhập sẽ tự động được nhóm. Hình dung đồ thị của các câu lệnh đã nhập và bạn sẽ hiểu. – softvar