vue-cli 4.x 的解决方案
相信很多小老弟已经更新到了vue-cli 4.x
了。截止目前为止 npm 最新的包为4.5.6
。
查看npm
如果要更新包的话执行npm i @vue/cli -g
,遇到权限问题就用sudo npm i @vue/cli -g
。
当然了,打包出来的静态文件还是这样滴: <link href=/css/chunk-vendors.2c552267.css rel=stylesheet>
。所以我们还是要在vue.config.js
(没有的话,自己在根目录新建一个vue.config.js
,与package.json
同级)中修改。
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '././' : '/'
};
可以看到 vue-cli4
把原先的 baseUrl
改成了publicPath
。然后最最需要注意的地方就是要把路径改成././
。这样才能打包成我们想要的<link href=./css/chunk-vendors.2c552267.css rel=stylesheet>
具体原因查看这个
vue-cli 3.x
使用新版的vue-cli构建出来的项目目录也是非常清爽。我这边在构建的时候选的是Manually features
。
然后在项目打包执行yarn build
的时候,打开dist目录的index.html发现资源没有正确加载。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpYGN7b7-1601198886490)(http://oughko11e.bkt.clouddn.com/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180704165722.png)]
立即联想到需要改输入路径的地址。却尴尬的发现之前的build和config文件夹不见了。查阅后发现如果需要自定义配置,需要在项目的 根目录添加一个Vue.config.js
。在这个文件中,我们可以进行一些个性化定制。
module.exports = {
// 基本路径
baseUrl: './',
// 生产环境是否生成 sourceMap 文件
productionSourceMap: false,
// 服务器端口号
devServer: {
port: 1234,
},
}
和以前的操作一样 **在/
前面直接加上.
**就行了
详细配置
module.exports = {
// 基本路径
baseUrl: '/',
// 输出文件目录
outputDir: 'dist',
// eslint-loader 是否在保存的时候检查
lintOnSave: true,
// use the full build with in-browser compiler?
// https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
compiler: false,
// webpack配置
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => {},
configureWebpack: () => {},
// vue-loader 配置项
// https://vue-loader.vuejs.org/en/options.html
vueLoader: {},
// 生产环境是否生成 sourceMap 文件
productionSourceMap: true,
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {},
// 启用 CSS modules for all css / pre-processor files.
modules: false
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require('os').cpus().length > 1,
// 是否启用dll
// See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
dll: false,
// PWA 插件相关配置
// see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
pwa: {},
// webpack-dev-server 相关配置
devServer: {
open: process.platform === 'darwin',
host: '0.0.0.0',
port: 8080,
https: false,
hotOnly: false,
proxy: null, // 设置代理
before: app => {}
},
// 第三方插件配置
pluginOptions: {
// ...
}
}