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')
}
}
};