[英]When using Webpack and Babel, what is the best way to turn off compression?
[英]webpack/babel : what is the best way to share variables between bundles?
我有 2 个单独的 js 包加载在同一个 html 页面上,所以 webpack.config.js:
entry: {
preload: "./preload.tsx",
main: "./index.tsx"
}
目标:preload.js 生成需要由 main.js 访问的缓存表的 Promise。
但是它们需要是单独的包,因此import
不起作用,这将导致 preload.js 执行两次。 我试图:
Uncaught ReferenceError: global_variable is not defined
(window as any)
它看起来很邪恶从 TypeScript 3.9 开始,我找不到合适的解决方案。 任何建议将不胜感激。
就像评论中提到的@Elias 一样,我认为首选解决方案是动态导入解决方案,但要回答问题,您可以做以下两件事之一:
1.使用提供插件:
plugins: [
new webpack.ProvidePlugin({
globalVar: path.resolve(path.join(__dirname, 'src/GlobalVarModule'))
});
]
GlobalBarModule.ts:
var globalVar = "my global var value"
module.exports = globalVar;
和简单的用法:Index.js:
console.log(globalVar);
每当标识符(
globalVar
)在模块中作为自由变量遇到时,模块会自动加载,并且标识符会填充加载模块的导出(或属性以支持命名导出)。
-来自文档。
2.使用Externals让 webpack 知道您正在使用 window 中的变量:
externals: {
globalVar: path.resolve(path.join(__dirname, 'src/GlobalVarModule'))
}
在您的代码早期的某个地方:
globalVar = "my global var value";
用法:
import globalVar from 'globalVar';
console.log(globalVar);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.