const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); const resolve = function (src) { return path.resolve(__dirname, src); }; module.exports = { entry:{ app: path.resolve(__dirname,'src','index.js'), //test:path.resolve(__dirname,'src/test','test.js') }, plugins: [ new VueLoaderPlugin(), new HtmlWebpackPlugin({ // title:'预诊', template:path.resolve(__dirname,'src','index.html'), }), ], output: { filename: "[name].bundle.js", path: path.resolve(__dirname,'dist') }, module: { rules: [ { test:/\.css$/, use:[ // 'style-loader', 'vue-style-loader', 'css-loader', ] }, { test:/\.less$/, use:[ // 'style-loader', 'vue-style-loader', 'css-loader', 'less-loader' ] }, { test: /\.(png|svg|jpg|jpeg|gif)/, use:[{ loader: "file-loader", options:{ limit:5000, // name: 'imgs/[name].[ext]' name: 'images/[name].[ext]' } }] }, { test:/\.vue$/, /*use:[ 'vue-loader' ]*/ use:{ loader:'vue-loader', options:{ loaders:{ less:'vue-style-loader!css-loader!less-loader' } } } }, { test: /\.js$/, exclude: file => ( /node_modules/.test(file) && !/\.vue\.js/.test(file) ), use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], // plugins: ['@babel/plugin-transform-runtime'] } } } ] }, resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$':'vue/dist/vue.esm.js' , //让vue使用compiler模式,默认runtime模式要用render初始化 '@':resolve('./src'), '@components':resolve('./src/components'), '@less':resolve('./src/less'), '@utils':resolve('./src/utils') } } };