@pgsz/pg-cli
Version:
pg-cli脚手架的自我学习
69 lines (66 loc) • 2.03 kB
JavaScript
const path = require('path')
const { VueLoaderPlugin } = require('vue-loader')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const WebpackBar = require('webpackbar')
const resolve = (filePath) => path.resolve(__dirname, filePath)
module.exports = {
entry: resolve('../src/main.js'),
resolve: {
extensions: ['.js', '.vue', '.json', '.css'],
alias: {
'@': resolve('../src'),
},
},
module: {
rules: [
<%_ if (lintOnSave) { _%>
{
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /node_modules/
},
<%_ } _%>
{
test: /\.vue$/,
loader: 'vue-loader',
exclude: /node_modules/,
},
<%_ if (hasBabel) { _%>
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
<%_ } _%>
{
test: /\.(png|svg|jpg|gif|ico)$/,
use: [{
loader: 'file-loader',
options: {
esModule: false,
},
}],
},
{
test: /\.(woff|eot|ttf)\??.*$/,
loader: 'url-loader?name=fonts/[name].[md5:hash:hex:7].[ext]',
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
],
},
plugins: [
new WebpackBar(),
new VueLoaderPlugin(),
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'My App',
template: resolve('../public/index.html'),
favicon: resolve('../public/favicon.ico'),
}),
],
}