vue.config.js的常用配置
程序员文章站
2022-06-23 22:52:13
对应生成的dist文件目录及多页面配置时的文件目录如下: ......
const path = require('path') const glob = require('glob') const resolve = (dir) => path.join(__dirname, dir) const pages_path = './src/pages/*/*.js' module.exports = { // publicpath: '/test/', // 设置部署应用包时的基本url publicpath: process.env.node_env === 'production' ? '/test/' : './', // 开发环境与生产环境的区分 //outputdir: 'testbuild', // 运行build 时生产的构建文件的目录,默认'dist' // assetsdir: 'assets', // build之后生成的静态资源放置的目录,默认'' // indexpath: 'test/home.html', // build之后生成的index.html的路径 // filenamehashing: true, // build之后生成的静态资源默认情况下加了hash值以控制静态资源的缓存,默认是true // pages: { // index:{ // entry: 'src/pages/index/main.js', // page入口 // template: 'public/index.html', // public 里面的文件 // filename: 'index.html', // build之后生成的文件及路径名 // title: 'index page', // chunks: ['chunk-vendors', 'chunk-common', 'index'] // }, // page1:{ // entry: 'src/pages/page1/main.js', // page入口 // template: 'public/page1.html', // public里面的文件 // filename: 'page1.html', // build之后生成的文件及路径名 // title: 'page1', // 使用此项时,// template 中的 title 标签需要是 <title><%= htmlwebpackplugin.options.title %></title> // chunks: ['chunk-vendors', 'chunk-common', 'page1'] // 提取出来的通用 chunk 和 vendor chunk // }, // page2:{ // entry: 'src/pages/page2/main.js', // page入口 // template: 'public/page2.html', // filename: 'page2.html', // build之后生成的文件及路径名 // title: 'index page', // chunks: ['chunk-vendors', 'chunk-common', 'page2'] // } // }, pages:setpages(), productionsourcemap: false, // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建 // devserver: { // port: '1111', // // proxy: 'http://localhost:8080' //告诉开发服务器将任何未知请求 (没有匹配到静态文件的请求) 代理到http://localhost:8080。 // proxy: { // '/api': { // //要访问的跨域的域名 // target: 'http://localhost:8080', // ws: true, // 是否启用websockets // secure:false, // 使用的是http协议则设置为false,https协议则设置为true // changorigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样客户端端和服务端进行数据的交互就不会有跨域问题 // pathrewrite: { // '^/api': '' // } // } // } // }, chainwebpack: config => { /* 自动导入公共文件*/ const types = ['vue-modules', 'vue', 'normal-modules', 'normal'] types.foreach( type => addstyleresource(config.module.rule('scss').oneof(type)) ) /* 添加别名*/ config.resolve.alias .set('@title', resolve ('src/assets/commonpublic/title.vue')) } } /** * 注入公共样式 * @param rule */ function addstyleresource (rule) { rule.use('style-resource') .loader('style-resources-loader') .options({ patterns: [ path.resolve(__dirname, 'src/assets/common.scss') // resolve()返回绝对路径 ] }) } /** * 多页面跳转 */ function setpages () { let pages = {} glob.sync(pages_path).foreach(filepath => { let filelist = filepath.split('/') let filename = filelist[filelist.length - 2] pages[filename] = { entry: filepath, template:`public/${filename}.html` , // 'public/index.html' filename: `${filename}.html`, // title: chunks: ['chunk-vendors', 'chunk-common', filename] } }) return pages }
对应生成的dist文件目录及多页面配置时的文件目录如下: