У меня возникла странная проблема с последней версией браузера (10.2.4) и gulp. Кажется, что один и тот же файл разрешается несколько раз, поэтому я не получаю тот же экземпляр при создании синглета. Я поставил «отладчик» перед module.exports и проверил, что он вызывается дважды.Browserify разрешает один и тот же файл несколько раз
примечание № 1: У меня есть предположение, что он говорит, что браузеры кэшируют файлы на основе строки, поэтому при вызове относительных путей из разных мест не будет одинаковой строки, даже если они указывают на одно и то же место.
примечание # 2: Я использовал Browserify 3 ~ до сих пор, и только когда я обновил его, это начало происходить.
Пример:
Дано:
app.js
/folder1/foo.js
/folder2/bar.js
/folder1/foo.js:
function Foo(){}
module.exports = new Foo(); // Creating a singleton
/folder2/bar.js
var foo = require('../folder1/foo');
function Bar(){
// do something with foo
}
module.exports = Bar;
/app.js
var foo = require('./folder1/foo'),
Bar = require('./folder2/bar');
var bar = new Bar();
// Now 'foo' here and 'foo' inside Bar are not the same instance.
Но это означает, что я вообще не могу использовать синглтоны, поэтому это не решение –