@vue/cli3项目搭建(二)

配置vue.config.js

配置全局sass变量
module.exports = {

    // 全局配置css文件
    css: {
        loaderOptions: {
            sass: {
                prependData: `
                    @import "@/css/common.scss";
                    `
            }
        }
    },
}

但是这里有个坑,sass-loader 新版和旧版写法不一样

// 旧
data: `@import "~@/assets/scss/common.scss";`
// 新
prependData: `@import "~@/assets/scss/common.scss";`
关掉烦人的eslint错误检测

vue.config.js中添加

	lintOnSave:false,
html中插入环境变量

在这里插入图片描述
可以分别加载开发环境和生产环境的变量

自定义生成的静态资源的路径
assetsDir:'./static',

在这里插入图片描述

代理配置
	devServer: {
        open: true,	 //npm run serve时自动打开页面
        proxy: {
            '/api': {
                target: 'http://api.home.cc',
                // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
                changeOrigin: true,
                ws: true,
                pathRewrite: {
                    // 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可
                    '^/api': '/'
                }
            },
        },

    },
模拟数据
//json数据
const mock = require('./data/mock.json');

	devServer: {
        proxy: {},
        before(app) {
        	// 定义接口
            app.get("/api/mockData", (req, res) => {
              res.json(mock);
            });
            app.get("/api/main", (req, res) => {
              res.json(1);
            });
          },
    },
配置
const mock = require('./data/mock.json');

module.exports = {

    publicPath: './', // 基本路径
    outputDir: 'dist', // 输出文件目录
    lintOnSave:false, // eslint-loader 是否在保存的时候检查
    productionSourceMap: false, // 生产环境是否生成 sourceMap 文件
    assetsDir:'./static', //静态资源生成目录

    // 全局配置css文件
    css: {
        loaderOptions: {
            sass: {
                prependData: `
                    @import "@/css/common.scss";
                    `
            }
        }
    },

    devServer: {
        open: true,
        proxy: {
            '/api': {
                target: 'http://api.crmhome.cc',
                // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
                changeOrigin: true,
                ws: true,
                pathRewrite: {
                    // 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可
                    '^/api': '/'
                }
            },
        },
        before(app) {
            app.get("/api/mockData", (req, res) => {
              res.json(mock);
            });
            app.get("/api/main", (req, res) => {
              res.json(1);
            });
          },
    },

    // vue路由按需加载 去除插件
    chainWebpack(config) {
        config.plugins.delete('preload')
        config.plugins.delete('prefetch')
    },

    configureWebpack: config => {
        config.plugins.push(
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery",
                "windows.jQuery": "jquery"
            })
        )
        // 开发环境不需要gzip
        if (process.env.NODE_ENV === 'production'){
            config.plugins.push(
                new CompressionWebpackPlugin({
                    // 正在匹配需要压缩的文件后缀
                    test: /\.(js|css|svg|woff|ttf|json|html)$/,
                    // 大于10kb的会压缩
                    threshold: 10240
                })
            )
        }
        
    },

}

vue.config.js更多配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值