范围如何在 Webpack 中与 CommonJS 一起工作
How does scope work in Webpack with CommonJS
也许这不是特定于 JS 模块的 CommonJS 实现,但我的问题是关于作用域如何与导入模块一起工作。
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/window 上下文的一部分,您可以使用 global
变量
global.baz = baz;
或者更好的是,使用依赖注入来传递回调:
var foo = {
bar(baz) {
baz();
}
}
然后就可以使用了:
foo.bar(baz);
也许这不是特定于 JS 模块的 CommonJS 实现,但我的问题是关于作用域如何与导入模块一起工作。
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/window 上下文的一部分,您可以使用 global
变量
global.baz = baz;
或者更好的是,使用依赖注入来传递回调:
var foo = {
bar(baz) {
baz();
}
}
然后就可以使用了:
foo.bar(baz);