实现
/** * @param options * @params paths Array 自动引入js的数组 * @constructor */function importCdnPlugin(options) { this.options = options;}importCdnPlugin.prototype.apply = function(compiler) { try { const paths = this.options.paths; compiler.plugin('compilation', function(compilation, options) { compilation.plugin('html-webpack-plugin-before-html-processing', function(htmlPluginData, callback) { for (let i = paths.length - 1; i >= 0; i--) { htmlPluginData.assets.js.unshift(paths[i]); } callback(null, htmlPluginData); }); }); }catch (e) { throw new Error('没有正确传入paths参数'); }};module.exports = importCdnPlugin;
使用
new importCdnPlugin({ paths: [ "https://***.com/static/vue.js", "https://***/static/element-ui.min.js", "https://***/static/axios.min.js", "https://***/static/echarts/5.2.2/echarts.min.js" ]}),