分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

vue-cli3 ?vue.config.js配置

发布时间:2023-09-06 02:32责任编辑:顾先生关键词:js配置

vue-cli3推崇零配置,其图形化项目管理也很高大上。

但是vue-cli3推崇零配置的话,导致了跟之前vue-cli2的配置方式都不一样了。

别名设置,sourcemap控制,输入文件位置和输出文件位置和输出的方式,压缩js控制,打包webapck日志分析,externals忽略配置(外部引入),调试的端口配置,proxy接口配置等等的。

有时候还需要我们配置的,因为官方推荐的,并不适用于我们平时的开发所用的。

所以,我的vue.config.js配置是下面这样的。还有一个改hash的配置,暂时还不知道如何配置,以后会解决的,解决的时候顺便更新这里。

资料查询借鉴地址:

https://github.com/staven630/vue-cli3-config(介绍vue.config.js配置方法)

https://github.com/loveRandy/vue-cli3.0-vueadmin(借鉴前辈vue-cli3项目里的vue.config.js配置)也查询了不少github上的相关项目。

const IS_PROD = [‘production‘, ‘prod‘].includes(process.env.NODE_ENV);console.log("process.env.NODE_ENV:" + process.env.NODE_ENV);const UglifyJsPlugin = require(‘uglifyjs-webpack-plugin‘);const BundleAnalyzerPlugin = require(‘webpack-bundle-analyzer‘).BundleAnalyzerPlugin;const path = require(‘path‘)const resolve = dir => path.resolve(__dirname, dir)module.exports = { ???publicPath: ‘./‘, // 默认‘/‘,部署应用包时的基本 URL ???outputDir: ‘dist‘, // ‘dist‘, 生产环境构建文件的目录 ???assetsDir: ‘‘, ?// 相对于outputDir的静态资源(js、css、img、fonts)目录 ???lintOnSave: false, ???runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本 ???productionSourceMap: false, ?// 生产环境的 source map ???// CSS 相关选项 ???css: { ???????// 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中) ???????// 也可以是一个传递给 `extract-text-webpack-plugin` 的选项对象 ???????extract: true, ???????// 是否开启 CSS source map? ???????sourceMap: false, ???????// 为预处理器的 loader 传递自定义选项。比如传递给 ???????// sass-loader 时,使用 `{ sass: { ... } }`。 ???????loaderOptions: {}, ???????// 为所有的 CSS 及其预处理文件开启 CSS Modules。 ???????// 这个选项不会影响 `*.vue` 文件。 ???????modules: false ???}, ???// 在生产环境下为 Babel 和 TypeScript 使用 `thread-loader` ???// 在多核机器下会默认开启。 ???parallel: require(‘os‘).cpus().length > 1, ???pwa: {}, ???chainWebpack: config => { ???????// 修复HMR ???????config.resolve.symlinks(true); ???????//修复 Lazy loading routes Error ???????config.plugin(‘html‘).tap(args => { ???????????args[0].chunksSortMode = ‘none‘; ???????????return args; ???????}); ???????// 添加别名 ???????config.resolve.alias ???????????.set(‘@‘, resolve(‘src‘)) ???????????.set(‘assets‘, resolve(‘src/assets‘)) ???????????.set(‘components‘, resolve(‘src/components‘)) ???????????.set(‘layout‘, resolve(‘src/layout‘)) ???????????.set(‘base‘, resolve(‘src/base‘)) ???????????.set(‘static‘, resolve(‘src/static‘)); ???????//压缩图片 ???????// config.module ???????// ????.rule("images") ???????// ????.use("image-webpack-loader") ???????// ????.loader("image-webpack-loader") ???????// ????.options({ ???????// ????????mozjpeg: {progressive: true, quality: 65}, ???????// ????????optipng: {enabled: false}, ???????// ????????pngquant: {quality: "65-90", speed: 4}, ???????// ????????gifsicle: {interlaced: false}, ???????// ????????webp: {quality: 75} ???????// ????}); ???}, ???configureWebpack: config => { ???????if (IS_PROD) { ???????????const plugins = [] ???????????plugins.push( ???????????????new UglifyJsPlugin({ ???????????????????uglifyOptions: { ???????????????????????compress: { ???????????????????????????warnings: false, ???????????????????????????drop_console: true, ???????????????????????????drop_debugger: false, ???????????????????????????pure_funcs: [‘console.log‘] //移除console ???????????????????????} ???????????????????}, ???????????????????sourceMap: false, ???????????????????parallel: true ???????????????}) ???????????) ???????????plugins.push( ???????????????new CompressionWebpackPlugin({ ???????????????????filename: ‘[path].gz[query]‘, ???????????????????algorithm: ‘gzip‘, ???????????????????test: productionGzipExtensions, ???????????????????threshold: 10240, ???????????????????minRatio: 0.8 ???????????????}) ???????????) ???????????//去掉 console.log ???????????plugins.push( ???????????????new UglifyJsPlugin({ ???????????????????uglifyOptions: { ???????????????????????compress: { ???????????????????????????warnings: true, ???????????????????????????drop_console: true, ???????????????????????????drop_debugger: true, ???????????????????????????pure_funcs: [‘console.log‘]//移除console ???????????????????????} ???????????????????}, ???????????????????sourceMap: false, ???????????????????parallel: true ???????????????}) ???????????); ???????????config.plugins = [...config.plugins, ...plugins] ???????} ???????// 打包分析 ???????if (process.env.IS_ANALYZ) { ???????????config.plugin(‘webpack-report‘) ???????????????.use(BundleAnalyzerPlugin, [{ ???????????????????analyzerMode: ‘static‘, ???????????????}]); ???????} ???????// //配置 externals ???????// //防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖 ???????// config.externals = { ???????// ????‘vue‘: ‘Vue‘, ???????// ????‘element-ui‘: ‘ELEMENT‘, ???????// ????‘vue-router‘: ‘VueRouter‘, ???????// ????‘vuex‘: ‘Vuex‘, ???????// ????‘axios‘: ‘axios‘ ???????// } ???}, ???devServer: { ???????// overlay: { ???????// ??warnings: true, ???????// ??errors: true ???????// }, ???????open: IS_PROD, ???????host: ‘0.0.0.0‘, ???????port: 8080, ???????https: false, ???????hotOnly: false, ???????proxy: { ???????????‘/api‘: { ???????????????target: process.env.VUE_APP_BASE_API || ‘http://127.0.0.1:8080‘, ???????????????changeOrigin: true ???????????} ???????} ???}};

vue-cli3 ?vue.config.js配置

原文地址:https://www.cnblogs.com/huoan/p/10354341.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved