diff --git a/web/build.config.js b/web/build.config.js
new file mode 100644
index 00000000..17b496f7
--- /dev/null
+++ b/web/build.config.js
@@ -0,0 +1,18 @@
+'use strict'
+
+module.exports = {
+ title: 'GIN-VUE-ADMIN1',
+ baseCdnUrl: '//cdn.staticfile.org',
+ cdns: [
+ /**
+ * 如果设置path属性, { name: 'vue', scope: 'Vue', path: '/vue/2.6.9/vue.min.js' } 即编译出来以[baseCdnUrl][path]
+ * 否则自动拼写 [baseCdnUrl]/[name]/[version]/[name].min.js
+ * */
+ { name: 'vue', scope: 'Vue' },
+ { name: 'vue-router', scope: 'VueRouter' },
+ { name: 'vuex', scope: 'Vuex' },
+ { name: 'axios', scope: 'axios' },
+ { name: 'echarts', scope: 'echarts' },
+ { name: 'element-ui', scope: 'ELEMENT', path: '/element-ui/2.12.0/index.js'},
+ ]
+};
diff --git a/web/public/index.html b/web/public/index.html
index 9125f712..22e89c7c 100644
--- a/web/public/index.html
+++ b/web/public/index.html
@@ -7,11 +7,11 @@
-
GIN-VUE-ADMIN
+ <%=htmlWebpackPlugin.options.title%>
<% if(process.env.NODE_ENV!=='development'){ %>
-
-
-
+ <% htmlWebpackPlugin.options.cdns.forEach(function(item){ if(item.js){ %>
+
+ <% } }) %>
<% } %>
diff --git a/web/vue.config.js b/web/vue.config.js
index d30c1477..6608839b 100644
--- a/web/vue.config.js
+++ b/web/vue.config.js
@@ -1,6 +1,8 @@
'use strict'
const path = require('path')
+const buildConf = require('./build.config')
+const packageConf = require('./package.json')
function resolve(dir) {
return path.join(__dirname, dir)
@@ -63,13 +65,31 @@ module.exports = {
// 不打包 begin
// 1.目前已经测试通过[vue,axios,echarts]可以cdn引用,其它组件测试通过后可继续添加
// 2.此处添加不打包后,需在public/index.html head中添加相应cdn资源链接
- config.set('externals', {
- vue: 'Vue',
- axios: 'axios',
- echarts: 'echarts'
- })
+ config.set('externals', buildConf.cdns.reduce((p, a) => {
+ p[a.name] = a.scope
+ return p
+ },{}))
// 不打包 end
+ config.plugin('html')
+ .tap(args => {
+ if(buildConf.title) {
+ args[0].title = buildConf.title
+ }
+ if(buildConf.cdns.length > 0) {
+ args[0].cdns = buildConf.cdns.map(conf => {
+ if (conf.path) {
+ conf.js = `${buildConf.baseCdnUrl}${conf.path}`
+ } else {
+ conf.js = `${buildConf.baseCdnUrl}/${conf.name}/${packageConf.dependencies[conf.name].replace('^', '')}/${conf.name}.min.js`
+ }
+
+ return conf
+ })
+ }
+ return args
+ })
+
config
.plugin('ScriptExtHtmlWebpackPlugin')
.after('html')