You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.3 KiB
89 lines
2.3 KiB
'use strict';
|
|
|
|
const path = require('path');
|
|
const defaultSettings = require('./settings.js');
|
|
const devServer = require('./devServer'); //devServer相关配置
|
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
|
|
/**自动加载关系**/
|
|
const CreatedComponentsPlugin = require('./build/plugins/CreatedComponentsPlugin');
|
|
|
|
|
|
function resolve(dir) {
|
|
return path.join(__dirname, dir)
|
|
}
|
|
|
|
/***
|
|
* @description 根据环境入口使用的插件
|
|
* @type {CreatedComponentsPlugin[]}
|
|
*/
|
|
let plugins = [];
|
|
//console.log(process.env.npm_lifecycle_script.indexOf('gxdVue'), process.env);
|
|
if(process.env.npm_lifecycle_script.indexOf('gxdVue') !== -1) {
|
|
plugins.push(new UglifyJsPlugin({
|
|
uglifyOptions: {
|
|
compress: {
|
|
warnings: false,
|
|
drop_debugger: true, //去掉debugger
|
|
drop_console: true, // 去掉console
|
|
pure_funcs: ['console.log']// 移除console
|
|
}
|
|
},
|
|
sourceMap: false,
|
|
parallel: true
|
|
}));
|
|
}
|
|
|
|
|
|
const name = defaultSettings.title || 'XD Vue Package'; // page title
|
|
|
|
|
|
// All configuration item explanations can be find in https://cli.vuejs.org/config/
|
|
module.exports = {
|
|
/**
|
|
* You will need to set publicPath if you plan to deploy your site under a sub path,
|
|
* for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
|
|
* then publicPath should be set to "/bar/".
|
|
* In most cases please use '/' !!!
|
|
* Detail: https://cli.vuejs.org/config/#publicpath
|
|
*/
|
|
publicPath: '/',
|
|
outputDir: 'dist',
|
|
assetsDir: 'static',
|
|
/**是否关闭eslint语法检测**/
|
|
lintOnSave: defaultSettings.isCloseEslint,
|
|
productionSourceMap: false,
|
|
|
|
devServer,
|
|
css: {
|
|
extract: false //设置不产生css样式模式
|
|
},
|
|
|
|
configureWebpack: {
|
|
// provide the app's title in webpack's name field, so that
|
|
// it can be accessed in index.html to inject the correct title.
|
|
name: name,
|
|
//关闭性能提示
|
|
performance: {
|
|
hints: false,
|
|
//入口起点的最大体积
|
|
maxEntrypointSize: 50000000,
|
|
//生成文件的最大体积
|
|
maxAssetSize: 30000000,
|
|
//只给出 js 文件的性能提示
|
|
assetFilter: function (assetFilename) {
|
|
return assetFilename.endsWith('.js');
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': resolve('src'),
|
|
}
|
|
},
|
|
plugins
|
|
},
|
|
|
|
chainWebpack: (config) => {
|
|
|
|
}
|
|
};
|