使用别名从 CDN 加载外部库
Load external library from CDN under an alias
我需要从 CDN 加载同一个库的两个版本。有没有办法在 window
上指定结果对象的名称,以免它们发生冲突?或者我可以在加载第二个之前重命名第一个吗?
<script src="lib@1" />
<script> window.lib1 = window.lib; </script>
<script src="lib@2" />
然后
window.lib1 // is lib@1
window.lib // is lib@2
基于Jonas Wilms'的回答,我在使用webpack时想到了这两个解决方案,我在原问题中没有提到。
这是一个演示 https://codesandbox.io/s/multiple-library-versions-kvg5d
webpack - externals
- 更新包时必须更改 webpack 配置
module.exports = {
externals: {
react: 'React16_11'
}
};
在代码中
import React from 'react' // webpack translates to window.React16_11
webpack - *
- 更新包时必须更改项目中的 .js 文件
module.exports = {
alias: {
react$: './getReactFromWindow',
},
};
getReactFromWindow.js:
module.exports = window.React16_11;
在代码中
import React from 'react' // webpack translates to './getReactFromWindow'
*基于
的webpack别名
我需要从 CDN 加载同一个库的两个版本。有没有办法在 window
上指定结果对象的名称,以免它们发生冲突?或者我可以在加载第二个之前重命名第一个吗?
<script src="lib@1" />
<script> window.lib1 = window.lib; </script>
<script src="lib@2" />
然后
window.lib1 // is lib@1
window.lib // is lib@2
基于Jonas Wilms'的回答,我在使用webpack时想到了这两个解决方案,我在原问题中没有提到。
这是一个演示 https://codesandbox.io/s/multiple-library-versions-kvg5d
webpack - externals
- 更新包时必须更改 webpack 配置
module.exports = {
externals: {
react: 'React16_11'
}
};
在代码中
import React from 'react' // webpack translates to window.React16_11
webpack - *
- 更新包时必须更改项目中的 .js 文件
module.exports = {
alias: {
react$: './getReactFromWindow',
},
};
getReactFromWindow.js:
module.exports = window.React16_11;
在代码中
import React from 'react' // webpack translates to './getReactFromWindow'
*基于