最近有个项目需要导入腾讯云的图片验证js库
官方文档https://007.qq.com/quick-start.html?ADTAG=acces.cfg
https://ssl.captcha.qq.com/TCaptcha.js
像这种只提供script方式引入的第三方库,在webpack项目中使用,
1、可以使用webpack.ProvidePlugin 【提供了npm安装方式的库没问题,没提供npm安装的库有可能有问题】
这种方法使得第三方库被全局使用无法做到按需加载
然后,在webpack.config.js
中,添加如下代码:
//这种方法使得_被全局使用无法做到按需加载
new webpack.ProvidePlugin({
_: 'lodash'
}),
//以下lodash通过下载到本地来使用,同样那些没有提供npm安装的第三方库可以这样做
new webpack.ProvidePlugin({
_:path.resolve(__dirname, './src/lib/lodash/lodash.js'),
})
2、动态加载script标签,只在需要用到第三方库的模块或者页面引入script【本文重点】
var head = document.getElementsByTag('head')[0];
var script = document.createElement('script');
script.id='lib-id';
script.type='text/script';
head.appendChild(script);
script.src='https://ssl.captcha.qq.com/TCaptcha.js';
script.onload=function(){
//这里就是当第三方库加载成功后的代码逻辑了
}
3、expose-loader用法