我最近开始编写CommonJS模块,但面临需要模块的问题。为什么storage.js无法访问我所需的示例模块?在这种情况下需要依赖模块的正确方法是什么?browserify循环依赖:有些东西不是函数
编辑:包括更多的信息,因为前面的问题省略了hello.js,我认为这不是问题的原因。似乎包括它会导致未捕获的类型错误。此外,这是Chrome扩展的代码的一部分,main.js是内容脚本。
// main.js
var hello = require('./hello');
var storage = require('./storage');
var example = require('./example');
storage.store();
// storage.js
var example = require('./example');
module.exports = (function() {
function store() {example.ex();}
return {store: store};
})();
// example.js
var storage = require('./storage');
module.exports = (function() {
function ex() {
console.log('example');
}
return {ex: ex};
})();
// hello.js
var example = require('./example'); // <<<< Including this gives Uncaught TypeError: example.ex is not a function
module.exports = (function() {
function hello() {
console.log('hello');
}
return {hello:hello};
})();
var storage是否在全局范围内? – Philipp
刚刚粘贴你的代码(只在功能控制台输出中插入以检查所谓的内容),并且一切正常,没有任何错误 – dajnz
与@dajnz相同。你有没有在你的package.json或点文件中的任何browserify或webpack覆盖? –