最近在配置webpack獨(dú)立打包c(diǎn)ss文件的時候遇到一些問題。拿出來跟大家分享一下。
關(guān)于webpack的具體介紹可以去官網(wǎng)看看,我這里就不具體介紹了:
之前寫樣式的時候采用了sass,采用的是用ruby的方式來編譯的。感覺好low。于是自己琢磨了一下,能不能用webpack來編譯打包。于是自己就配置了webpack.config.js以下為具體代碼。
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin=require("extract-text-webpack-plugin");
module.exports = {
entry:{
"basic":"./src/entry/basic.js",
"head":"./src/entry/head.js",
"foot":"./src/entry/foot.js"
},
output: {
path: path.join(__dirname, 'dist'),
filename: "js/[name].bundle.js"
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
compressor: {
warnings: false,
},
}),
new webpack.optimize.OccurrenceOrderPlugin(),
new ExtractTextPlugin("css/[name].css")
],
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({fallback: "style-loader",use: "css-loader"})
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract({fallback:"style-loader",use:["css-loader","sass-loader"]})
}
]
}
}
這段配置復(fù)制出來改下路徑能立即使用,已經(jīng)測試過了。
這段配置其實(shí)很簡單,主要就是用webpack的loader來編譯css、scss文件。并且把css文件獨(dú)立出來。起初遇到了一個問題。困擾了我好久。于是拿出來跟大家分享下。想把css文件獨(dú)立出來就要用到webpack的一個插件extract-text-webpack-plugin
1,在項(xiàng)目目錄下安裝該插件
"npm install extract-text-webpack-plugin --save-dev"。
2,在配置文件中進(jìn)行修改(注意了問題來了)起初我的loader配置是這樣的
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader")
},
{
test: /\.less$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader")
}
]
},
初看沒有錯啊,跟官網(wǎng)上的demo是一樣的。然后我webpack運(yùn)行就提示我這個錯誤

image.png
后來經(jīng)過資料查閱,估計(jì)是webpack版本問題(我用的是2.6.0)采用這個插件的時候要用上面的寫法。即
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({fallback: "style-loader",use: "css-loader"})
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract({fallback:"style-loader",use:["css-loader","sass-loader"]})
}
]
}
不足之處,懇請大神指正。我會立馬改正。