.apph1{color:red;}上一篇我们从0到1使用webpack搭建了一个基础的react应用,在团队项目中vue也用的比较多。怎么能不依赖vue-cli脚手架搭建自己的vue工程项目呢?与React相比,Vue需要的插件要少得多。我们知道在vue中,大部分都是.vue模板组件,所以关键是我们可以使用webpack的相关loader来解析.vue文件。在vue项目中解析单文件组件、热加载、cssscope等都依赖于这个插件vue-loader,所以vue-loader是vue工程中不可或缺的插件。正文开始……初始化项目新建一个webpack-03-vue目录,执行npminit-y安装相关基础配置插件npmiwebpackwebpack-clifs-loadercss-loaderstyle-loaderhtml-webpack-pluginmini-css-extract-plugin-D安装最新版本的vue,执行如下命令npmivue-s安装并解析loadernpmivue-loader-D配置loader//webpack.config.jsmodule.exports={...模块:{规则:[{测试:/\.css$/,使用:['style-loader','css-loader']},{测试:/\.vue$/,加载器:'vue-loader'//与use:['vue-loader']等价}]},}除了设置loader外,我们还需要引入另一个插件VueLoaderPlugin,否则运行项目会报错加载模板。//webpack.config.jsconstHtmlWebpackPlguins=require('html-webpack-plugin');constminiCssExtractPlugin=require('mini-css-extract-plugin');//引入VueLoaderPlugin必不可少const{VueLoaderPlugin}=require('vue-loader');module.exports={...plugins:[newHtmlWebpackPlguins({template:'./public/index.html'}),newminiCssExtractPlugin({filename:'css/[name].css'}),newVueLoaderPlugin(),]}如果我们需要提取css,我们需要将style-loader替换为miniCssExtractPlugin.loader//webpack.config.jsconstminiCssExtractPlugin=require('mini-css-extract-plugin');module.exports={module:{rules:[{test:/\.css$/,use:[miniCssExtractPlugin.loader,'css-loader']},...]}所有配置完成后,见最后webpack.config.js完成配置constpath=require('path');constHtmlWebpackPlguins=require('html-webpack-plugin');constminiCssExtractPlugin=require('mini-css-extract-plugin');const{VueLoaderPlugin}=require('vue-loader');module.exports={entry:{app:'./src/index.js'},output:{filename:'[name][hash].js',path:path.resolve(__dirname,'dist')},模式:'development',module:{rules:[{test:/\.css$/,use:[miniCssExtractPlugin.loader,'css-loader']},{test:/\.vue$/,loader:'vue-loader'},{test:/\.less$/,use:[miniCssExtractPlugin.loader,'css-loader',{loader:'less-loader'},{loader:'postcss-loader'//选项:{//postcssOptions:{//插件:[['postcss-preset-env']]//}//}}]},{test:/\.(js|jsx)$/,loader:'babel-loader'}]},插件:[newHtmlWebpackPlguins({template:'./public/index.html'}),newminiCssExtractPlugin({filename:'css/[name].css'}),新VueLoaderPlugin()]};我们在src目录下新建index.js和App.vue文件{{name}}
{{age}}
{{publicText}}