Использование browserify с уменьшенной библиотекой JavaScript

  1. Может ли минимизированная библиотека JavaScript быть «обязательной» и входить в комплект с помощью Browserify? Другими словами, требует ли Browserify, чтобы файл JavaScript был в исходном формате?
  2. Если файл JavaScript не является модулем CommonJS (ничего не экспортирует), можно ли его объединить с помощью Browserify? Другими словами, что делает require('xyz.js'), если xyz.js не является модулем CommonJS.

person Naresh    schedule 21.07.2014    source источник
comment
1. Да, браузеру просто нужно, чтобы все require('') ​​и module.exports были неповрежденными. 2. require('xyz.js') запускает xyz.js в первый раз, когда это требуется, затем ничего не делает.   -  person generalhenry    schedule 22.07.2014
comment
Спасибо @generalhenry. Что касается вопроса 2, то, если у меня есть файл JavaScript, который не является модулем CommonJS, как мне его просмотреть? Или мне не стоит даже пытаться это сделать?   -  person Naresh    schedule 22.07.2014
comment
Вы просто используете относительный путь от точки входа, например require('./vendor/xyz.js'). Browserify лучше всего работает с commonjs, но отлично работает с любым js.   -  person generalhenry    schedule 22.07.2014


Ответы (1)


  1. Если он правильно экспортирует свои свойства (например, с помощью экспорта или module.exports) и загружает модули с помощью require(), тогда да.
  2. Конечно, его можно связать, но вы не можете получить доступ к его свойствам/данным из результата вызова require(). Однако, если он использует, например, глобальный объект для своего экспорта, вы можете получить к нему доступ после того, как вам потребуется файл.

xyz.js:

window.myExport = "hello";

основной.js:

var xyz = require("xyz");
xyz.myExport; // undefined
window.myExport; // "hello"
person Razem    schedule 21.07.2014
comment
Спасибо @Radek. Чтобы продолжить ваш ответ № 2, рекомендуется ли в любом случае требовать такие файлы? Или они должны быть включены в html-файл с помощью тегов ‹script›? - person Naresh; 22.07.2014
comment
Сложно сказать. Мне нравится требовать все мои файлы, даже если они не являются модулями CommonJS, потому что мне не очень нравится иметь больше тегов script, чем один. Что тоже является хорошей практикой. Так что дело за вами, просто выберите вариант, который лучше и логичнее для вас. ;-) - person Razem; 22.07.2014
comment
Спасибо @Radek. Хороший совет. - person Naresh; 22.07.2014