范围如何在 Webpack 中使用 CommonJS



也许这不是特定于JS模块的CommonJS实现,但我的问题是关于scope如何与导入模块一起工作。

CommonnJS: foo.js

var foo = {
bar() {
baz();
}
}
module.exports = foo;

主 JS

const foo = require('./foo.js');
function baz() {
console.log('this is baz');
}
foo.bar();
//-> ReferenceError: baz is not defined

通常我希望找到baz,但似乎模块范围是完全隔离的。这是对的吗?在我尝试做的事情中,有没有办法或最佳实践?

与 webpack 无关。

JavaScript 模块只有本地上下文

如果您希望某些内容成为全局/窗口上下文的一部分,则可以使用global变量

global.baz = baz;

或者更好的是,使用依赖注入来传递回调:

var foo = {
bar(baz) {
baz();
}
}

然后可以使用它:

foo.bar(baz);

相关内容

  • 没有找到相关文章

最新更新