2015-04-19 4 views
-1

Есть ли способ определить переменную, которая будет использоваться только в пакете, без экспорта ее на клиент или сервер? Например,Переменная с областью действия

//In /packages/fooPackage/foo.js 
packageScopedValue = 'foo'; 

//In /packages/fooPackage/package.js 
api.export('packageScopedValue', 'package'); 

//In /packages/fooPackage/other.js 
doStuffWith(packageScopedValue); 

Не загрязняя окружающую среду?

ответ

1

Пакет с областью действия var является глобальным, который вы не экспортируете. Если я скажу foo = "RAAARR" (нет var) в pack.js и console.log(foo) в pack2.js, вы увидите RAAARR. Это потому, что метеорит по существу объединяет каждый файл js в том порядке, в котором вы его даете & затем обертывает его в IFFE.

Обратите внимание, что заказ на погрузку имеет значение !!

api.addFiles(['pack.js', 'pack2.js'], 'client'); //works 
api.addFiles(['pack2.js', 'pack.js'], 'client'); //undefined 
+0

Woah. Как я этого не знал? Удивительно, спасибо! –

Смежные вопросы