Closed jian-jiu closed 1 year ago
我不是很理解为什么不想带上后缀。
如果你不想携带后缀那么你不需要修改resolve。而是在transform 这个hook里面操作所有的script就行。然后针对vue 这些你想换成生产环境去批量替换
不使用resolve
采用
transform() {
return {
script: (node) => {
node.url = new Set([...node.url.keys()].map(url => path.dirname(url)))
}
}
}
resolve 一般是给非jsdelivr
和unpkg
用户使用的。
cdn({ url: 'https://unpkg.com', modules: ['vue', 'vue-demi', 'vue-router'], resolve: (base, { name, version }) => { return
${base}/${name}@${version}
} })打包后为下面所示,是link 标签而不是script标签
\<link href="https://unpkg.com/vuexxx... \<link href="https://unpkg.com/vue-demixxx... \<link href="https://unpkg.com/vue-routerxxx...
看源码是判断了下面的返回值后缀是否带.js,只有带了才是script. 但是我不想去带上.js resolve: (base, { name, version }) => { return
${base}/${name}@${version}
}