2017-02-03 10 views
0

Я пишу библиотеку в TypeScript, которую я хочу скомпилировать в один модуль CommonJS. С browserify я мог бы дать ему один файл, чтобы этот файл проходил через tsify и babelify, чтобы создать один файл, в котором были объединены все файлы. В основном я хочу иметь такую ​​же функциональность, но мне нужно, чтобы в нем использовался модуль CommonJS для использования с системами, совместимыми с CommonJS, такими как NodeJS, а не с браузером.Модули Condense ES2015/CommonJS для одного модуля CommonJS с Gulp

У меня возникли проблемы с выбором варианта или подключаемого модуля, который делает это. Я что-то пропускаю?

ответ

0

Что вы ищете --standalone или -s вариант:

Сформировать пакет UMD для поставляемого имени экспорта. Этот пакет работает с другими модульными системами и задает имя, заданное как глобальное окно , если система модулей не найдена.

Использование командной строки:

browserify main.js --standalone myLib > myLib.js 

Использование API:

var fs = require('fs'); 
var browserify = require('browserify'); 
var b = browserify('./main.js'); 
b.bundle({standalone: 'myLib'}).pipe(fs.createWriteStream(__dirname + '/myLib.js')); 
+0

Это близко. Знаете ли вы, есть ли способ напрямую зарегистрировать экспорт по умолчанию? Этот подход требует, чтобы пользователи выполняли 'let myModule = require (« my_module »). Default;' чтобы захватить все, что экспортируется, как 'export default myModule;' – dawsonc623

+0

UMD (Universal Module Definition) совместим со всеми тремя модульными системами загрузки: CommonJS, AMD или сценарий в браузере. Все, что вы экспортируете из модуля, будет доступно, когда вам понадобится модуль с использованием CommonJS. – dNitro