Использование Browserify с JQuery — что это значит «на самом деле»?

Новичок в javascript и т. д. Я хотел сделать чистый проект HTML/Javascript. Я посмотрел на requireJS, и из того, что я прочитал, мне показалось, что несколько проектов прошли через болезненное переключение своего проекта requireJS на проекты node/browserify.

Поэтому я подумал, что просто начну с проекта node/browserify.

Мое ограниченное понимание заключается в том, что когда вы просматриваете проект, он в основном упаковывает зависимости вместе с вашим javascript.

Пара вопросов

  1. Он создает только один файл?

  2. Если он создает несколько файлов, то что произойдет, если несколько файлов зависят от одного и того же проекта (например, lodash)? Добавляет ли он исходный код требуемого проекта несколько раз?

  3. Что, если я использую библиотеку на стороне браузера, такую ​​как JQuery... в этом сценарии, согласно docs, похоже, мне нужно будет использовать jsdom. Что происходит, когда я открываю это в браузере? Это дороже, чем просто использование jquery?


person hba    schedule 13.07.2015    source источник
comment
Он создает один файл, по крайней мере, для меня. Зависимость не включается несколько раз (по крайней мере, не в один и тот же файл, idk, если можно создать несколько), я использую jQuery в проекте браузера (это требуется для semantic-ui). См. этот gulpfile (функция 'build', объект browserifyArguments) для некоторых случайных вариантов использования. Не могу написать настоящий ответ прямо сейчас, извините. github.com/hyperstone/moon-shard/blob/master/gulpfile. js   -  person Florian Wendelborn    schedule 14.07.2015


Ответы (1)


Node.js и jQuery:

Одно важное различие между Node.js и браузером заключается в том, что Node.js — это просто:

платформа, созданная на основе среды выполнения Chrome JavaScript.

это просто означает, что он позволяет вам выполнять код javascript. Браузеры также имеют собственную среду выполнения JS для выполнения сценариев на стороне клиента и, кроме того, предоставляют среднее "для представления и взаимодействия с объектами в документах HTML, XHTML и XML." и это объектная модель документа (DOM).

В Node.js нет HTML-файлов, и вам просто нужно работать с кодом JS, поэтому использование jQuery в Node.js не имеет никакого смысла, начиная с jQuery:

делает такие вещи, как обход и манипулирование документами HTML, обработку событий, анимацию и Ajax, намного проще благодаря простому в использовании API, который работает во множестве браузеров.


Node.js и браузер:

Node.js предоставляет систему загрузки модулей, которая позволяет включать другие модули с помощью ключевого слова require. Таким образом, любой JS-код, содержащий код require, не может быть выполнен в браузере, поскольку до ECMA5 нет встроенных механизмов загрузки модулей.

Browserify просто имитирует ключевое слово require и позволяет использовать его также в браузерах, как описано здесь< /а>:

Browserify использует термин «файл(ы) входа» для описания того, откуда он начнет чтение графа зависимостей, а его вывод называется пакетом.


Node.js для вашего проекта?:

Поскольку ваш проект предназначен для запуска в браузере (а не на сервере), нет необходимости переходить на Node.js. Однако вы можете использовать Nodejs, чтобы лучше поддерживать свой проект:

И после того, как вы протестировали свои модули (и скомпилировали свой coffeescript!), вы просто позволяете браузеру создать свой main.bundle.js и просто импортируете его в свою продукцию следующим образом:

<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="main.bundle.js"></script>
person Yan Foto    schedule 14.07.2015
comment
Это очень полезно, сегодня я поиграю с браузером и соответствующим образом размечу этот ответ. - person hba; 14.07.2015
comment
@hba дайте мне знать, если в ответе отсутствует какой-либо пункт вопроса. - person Yan Foto; 15.07.2015
comment
Я не уверен, что ваш комментарий - использование jquery на node-js не имеет смысла - верен. - person hba; 15.07.2015