123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- const path = require('path')
- const webpack = require('webpack')
- const MiniCssExtractPlugin = require('mini-css-extract-plugin')
- const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
- const VueLoaderPlugin = require('vue-loader/lib/plugin')
- module.exports = () => {
- // console.log('Building vendor files for \x1b[33m%s\x1b[0m', process.env.NODE_ENV)
- const isDevBuild = !(process.env.NODE_ENV && process.env.NODE_ENV === 'production')
- const extractCSS = new MiniCssExtractPlugin({
- filename: 'vendor.css'
- })
- return [{
- mode: (isDevBuild ? 'development' : 'production'),
- stats: { modules: false },
- resolve: {
- extensions: ['.js']
- },
- module: {
- rules: [
- {
- test: /\.vue$/, use: 'vue-loader', include: [
- //path.resolve(__dirname, '/ClientApp/'),
- //path.resolve(__dirname, '/node_modules/'),
- path.resolve(__dirname, '/')
- ]
- },
- {
- test: /\.js$/, use: 'babel-loader', include: [
- //path.resolve(__dirname, '/ClientApp/'),
- //path.resolve(__dirname, '/node_modules/'),
- path.resolve(__dirname, '/')
- ]
- },
- { test: /\.css$/, use: isDevBuild ? ['style-loader', 'css-loader'] : [MiniCssExtractPlugin.loader, 'css-loader'] },
- { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' },
- { test: /\.(eot|ttf|woff|woff2)$/, loader: 'file-loader' },
- { test: /\.less$/, use: [{ loader: "style-loader" }, { loader: "css-loader" }, { loader: "less-loader", options: { javascriptEnabled: true } }] }
- ]
- },
- entry: {
- vendor: ['event-source-polyfill', 'vue', 'vuex', 'axios', 'vue-router']
- },
- output: {
- path: path.join(__dirname, 'wwwroot', 'dist'),
- publicPath: '/dist/',
- filename: '[name].js',
- library: '[name]_[hash]'
- },
- plugins: [
- new VueLoaderPlugin(),
- extractCSS,
- new OptimizeCSSPlugin({
- cssProcessorOptions: {
- safe: true
- }
- }),
- new webpack.DllPlugin({
- path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
- name: '[name]_[hash]'
- })
- ]
- }]
- }
|