我正在测试用 esbuild 替换 Webpack 5。你如何在包中导出全局变量?我有一个依赖项,jQuery,但将来我会拥有更多。我的 esbuild 脚本是:
// build.js
const esbuild = require('esbuild');
esbuild
.build({
bundle: true,
entryNames: "[dir]/[name].[hash]",
entryPoints: {
libs: "src/libs.js",
},
outbase: "src",
outdir: "dist",
platform: 'browser',
})
.catch(() => process.exit(1));
并且libs.js
指示捆绑的依赖项是:
// src/libs.js
import 'jquery';
这是我的package.json
:
{
// ...
"dependencies": {
"jquery": "~3.6.0"
},
"devDependencies": {
"esbuild": "^0.14.23"
},
// ...
}
运行构建脚本将正确捆绑 jQuery,dist/libs.{hash}.js
但通过脚本标签将其包含在网页中既不暴露window.$
也不暴露window.jQuery
. 我如何让这些出口?
在 Webpack 5 中,我会用它expose-loader
来实现:
module.exports = {
module: {
rules: [
{
test: require.resolve('jquery'),
loader: 'expose-loader',
options: {exposes: ["$", "jQuery"]},
},
],
},
};