为了账号安全,请及时绑定邮箱和手机立即绑定

还是关于 extract-text-webpack-plugin 插件的问题....

在网上找到一位仁兄的代码,链接 https://segmentfault.com/a/1190000013994415,

然后就根据他的来试了一下,

------ webpack.config.js ------

const path = require('path')
const HTMLPlugin = require('html-webpack-plugin')
const webpack = require('webpack')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const {
VueLoaderPlugin
} = require('vue-loader');
const isDev = process.env.NODE_ENV === 'development'
const config = {
target: 'web',
entry: path.join(__dirname, 'src/index.js'),
output: {
filename: 'bundle.[hash:8].js',
path: path.join(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.jsx$/,
loader: 'babel-loader'
},
{
test:/\.(gif|jpg|jpeg|png|svg)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 1024,
name: '[name]-aaa.[ext]'
}
}
]
}
]
},
plugins: [
new VueLoaderPlugin(),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: isDev ? '"development"' : '"production"'
}
}),
new HTMLPlugin(),
new MiniCssExtractPlugin({
// Options similar to the same options in webpackOptions.output
// both options are optional
filename: "[name].css",
chunkFilename: "[id].css"
})
]
}
if(isDev){
config.module.rules.push({
test: /\.styl/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'postcss-loader',
options: {
sourceMap: true
}
},
'stylus-loader'
]
})
config.devtool = '#cheap-module-eval-source-map'
config.devServer = {
port: 8000,
host: '0.0.0.0',
overlay: {
errors: true
},
// open: true
// historyFallback: {
// }
hot: true
}
config.plugins.push(
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin()
)
} else {
config.output.filename = 'js/[name].[chunkhash:8].js';
config.module.rules.push(
{
test: /\.styl$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'postcss-loader',
options: {
sourceMap: true
}
},
'stylus-loader'
]
}
)
config.plugins.push(
new MiniCssExtractPlugin({
filename: "[name].[chunkhash:8].css",
chunkFilename: "[id].css"
})
)
}
module.exports = config;

然后,的确是有生成(然而我已经搞不懂到底会生成什么样子的文件了......),生成的dist如下

https://img1.sycdn.imooc.com//5b55dc020001d01a01840210.jpg

然而,也有报错....,真的看不懂了.....,如下图

https://img1.sycdn.imooc.com//5b55dc780001198b07940852.jpg

https://img1.sycdn.imooc.com//5b55dc9f0001d01b07580849.jpg

https://img1.sycdn.imooc.com//5b55dcc4000168eb06960862.jpg

https://img1.sycdn.imooc.com//5b55dce20001704207270651.jpg

求个大佬来说说到底是怎么回事.....改成 mini-css-extract-plugin 到底是怎么个用法....

求你们了...

正在回答

3 回答

} else {

// 修改打包的js名称

config.output.filename = '[name].[hash:8].js'

// 添加正式环境的规则

config.module.rules.push({

test: /\.styl$/,

use: extracttextwebpackplugin.extract({

fallback: 'style-loader',

use: [

'css-loader',

{

loader: 'postcss-loader',

options: {

sourceMap: true

}

},

'stylus-loader',

]

})

})

config.plugins.push(

new extracttextwebpackplugin('styles.[Hash:8].css')

)

}


0 回复 有任何疑惑可以回复我~

楼上的是webpack4.+常规用法。

但你还可以尝试使用:
npm install --save-dev extract-text-webpack-plugin@next
升级extract-text-webpack-plugin为4.0best版本

然后将
contentHsah:8 更改为 chunkhash:8
这样打包出来的和老师的是一样的


1 回复 有任何疑惑可以回复我~
#1

weibo_用户63780875_0

chunkhash:8 也是有报错的 不行 要改为 hash:8
2019-01-21 回复 有任何疑惑可以回复我~

我的也是基于webpack4.0+ 的,这个里有一篇文章

https://blog.csdn.net/harsima/article/details/80819747

介绍很清楚,不过里面的写法和老师的不太一样,不懂的可以看我的GitHub  https://github.com/marin1993/todo  里面用的是 mini-css-extract-plugin

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

还是关于 extract-text-webpack-plugin 插件的问题....

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信