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