Вытягивая мои волосы здесь, ища простое решение для совместного использования кода, требуемого через NPM, через несколько пакетов Browserify или Webpack. Думаете, есть ли такая вещь, как файл "мост"?
Это не из-за времени компиляции (я знаю, что смотрю), а скорее из желания извлечь все мои специфические для своего поставщика библиотеки в vendor.js
, чтобы сохранить размер файла app.js
и не сбрасывать браузер с массивными исходными картами. Кроме того, я нахожу его более чистым, если возникнет необходимость в просмотре скомпилированных js. И так:
// vendor.js
require('react');
require('lodash');
require('other-npm-module');
require('another-npm-module');
Очень важно, чтобы код загружался из NPM, а не Bower, или сохранялся в каком-то каталоге "vendor", чтобы импортироваться через относительный путь и идентифицироваться с помощью прокладки. Я бы хотел, чтобы каждая ссылка библиотеки была загружена через NPM, за исключением моего фактического источника приложения.
В app.js
Я сохраняю весь исходный код и через массив externals
исключаю из компиляции перечисленные выше библиотеки поставщиков:
// app.js
var React = require('react');
var _ = require('lodash');
var Component = React.createClass()
// ...
И затем в index.html
мне нужны оба файла
// index.html
<script src='vendor.js'></script>
<script src='app.js'></script>
Использование Browserify или Webpack, как я могу сделать это так, чтобы app.js
мог "видеть" в тот модуль, загруженный через npm? Я знаю, что создаю пакет с внешними файлами, а затем ссылаюсь на прямой файл (в, скажем, node_modules
) через псевдоним, но я надеюсь найти более автоматическое решение и меньше "Require.js",
В принципе, мне интересно, возможно ли перевести два, чтобы app.js
мог заглянуть внутрь vendor.js
, чтобы разрешить зависимости. Это кажется простой и простой операцией, но я не могу найти ответ нигде в этой широкой широкой сети.
Спасибо!