首要任务就是先排坑
根目录下新建一个配置文件vue.config.js(它是一个可选的文件,一般Vue UI创建的都自带,npm就默认没有,npm run serve会自动的加载该文件的配置)
const path = require('path')
function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = {
chainWebpack: (config) => {
config.resolve.alias
.set('__CSS__', resolve('src/assets/css'))
.set('__FONT__', resolve('src/assets/font'))
.set('__IMAGE__', resolve('src/assets/image'))
}
}
module.exports = {
......,
publicPath: process.env.NODE_ENV === 'production' ? './' : '/'
}
module.exports = {
//默认的挂载服务器
devServer: {
// overlay: { // 让浏览器 overlay 同时显示警告和错误
// warnings: true,
// errors: true
// },
// open: false, // 是否打开浏览器
// host: "localhost",
port: "3000", // 代理断就
// https: false,
// hotOnly: false, // 热更新
proxy: {
"/API": {
target: "your url", // 目标代理接口地址
secure: false,
changeOrigin: true, // 开启代理,在本地创建一个虚拟服务端
// ws: true, // 是否启用websockets
pathRewrite: {
"^/API": "/API"
}
}
}
}
};
vue-cli4文件目录有所改变,public不仅存在着页面,还可以存储一些静态资源,但是webpack不会对该目录的非默认文件进行打包处理。
如果 URL 是一个绝对路径 (例如 /images/foo.png),它将会被保留不变。
如果 URL 以 . 开头,它会作为一个相对模块请求被解释且基于你的文件系统中的目录结构进行解析。
如果 URL 以 ~ 开头,其后的任何内容都会作为一个模块请求被解析
如果 URL 以 @ 开头,它也会作为一个模块请求被解析
注意,在版本3,对于第三条,如果配置了路径别名不需要~开头,但是4规范了这一点。
看一些应用场景:
//1.
<style src="__CSS__/global.css" />
//2.