chore: 增加自动扫描package.json, 从cdn引入资源

This commit is contained in:
volcan0
2020-12-25 14:03:49 +08:00
parent cab8de721f
commit 843a585b7f
3 changed files with 47 additions and 9 deletions

View File

@@ -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')