2016-05-27 3 views
2

Я сделал 4 файла javascript, A, B, C, D, и они будут экспортировать 4 модуля A, B, C, D. Их зависимость A-> B-> C-> D. I введите командуКак использовать файл пакета, созданный при помощи браузера?

browserify A.js -o bundle.js 

и файл пакета, содержащий A, B, C, D. В HTML файл, я получил

<script src="bundle.js"></script> 
<script src="client.js"></script> 

внутри client.js, я получил

var a = new A(); 

консоль печатает ошибку, что А не определен. Однако client.js будет работать, если я удалить «требуют» и module.exports на все JS файл и сделать это в HTML файл

<script src = "D.js"></script> 
<script src = "C.js"></script> 
<script src = "B.js"></script> 
<script src = "A.js"></script> 
<script src = "client.js"></script> 

Кто-нибудь есть какие-либо идеи по этому вопросу?

ответ

1

Вы должны создать standalone пакет, который добавит переменную в глобальном контексте выполнения, это делается с --standalone <name> опцией

browserify A.js --standalone A -o bundle.js 
+0

Большое спасибо! Проблема успешно решена! –

0

Помимо автономного варианта, который Маурисио предложенного, вы также можете иметь browserify создать требуется функция, чтобы вы могли использовать функцию require в браузере.

browserify -r ./A.js:a_module ./B.js ./C.js ./D.js -o bundle.js 

Тогда ваш файл client.js может сделать это:

var a_module = require('a_module'); 
var a = new a_module.A(); 

Это external requires вариант.