腳手架版本:@vue/cli 4.4.1
vue.config.js中
module.exports = {
//打包是否生成.map文件
productionSourceMap: false,
lintOnSave: false,
configureWebpack: {
externals: {
'element-ui': 'ELEMENT',
'vue': 'Vue',
"vue-router": "VueRouter",
'vuex': "Vuex",
axios: 'axios'
}
},
pages: {
index: {
entry: 'src/main.js',
template: 'public/index.html',
filename: 'index.html',
chunks: ['chunk-vendors', 'chunk-common', 'index'],
cdn: {
css: [
'https://cdn.jsdelivr.net/npm/[email protected]/lib/theme-chalk/index.css'
],
js: [
"https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-router.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/dist/vuex.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/index.js",
"https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js"
]
},
}
},
devServer: {
port: 8013
}
};
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<% for (let i in htmlWebpackPlugin.options.cdn.css) { %>
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
<% } %>
</head>
<body>
<div id="app"> </div>
<% for (let i in htmlWebpackPlugin.options.cdn.js) { %>
<script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
<% } %>
</body>
</html>
是否要註釋掉引入
例如:import Vue from 'vue’這些,我看了一些博客說要註釋掉,但是我測試了註釋掉和不註釋的,打包處來文件大小是一樣的,應該是4版本
的腳手架做了處理了.
補充說明
ELEMENT、VueRouter這些命名可以去源碼暴露出來的全局對象中查看
關於cdn地址
unpkg服務器在美國,jsdelivr在國內速度要快一些(很有意思的一點vue文檔裏面用的是jsdelivr,element-ui裏面用的是unpkg,黑人牙膏是國人品牌,中華牙膏是國外品牌一樣的原理?)