Node.js 将ES2015/CommonJS模块压缩为一个带有Gulp的CommonJS模块

Node.js 将ES2015/CommonJS模块压缩为一个带有Gulp的CommonJS模块,node.js,typescript,gulp,commonjs,babeljs,Node.js,Typescript,Gulp,Commonjs,Babeljs,我正在用TypeScript编写一个库,我想将它编译成一个CommonJS模块。使用browserify,我可以给它一个文件,让该文件通过tsify和babelify运行,生成一个文件,将所有文件合并成一个文件。我基本上想要相同类型的功能,但我需要它来生成一个CommonJS模块,用于与CommonJS兼容的系统,如NodeJS,而不是浏览器 我很难找到这样做的选项或插件。我忽略了什么吗?您正在寻找的是--独立的或-s选项: 为提供的导出名称生成UMD绑定。这个包管用 与其他模块系统一起使用,并

我正在用TypeScript编写一个库,我想将它编译成一个CommonJS模块。使用
browserify
,我可以给它一个文件,让该文件通过
tsify
babelify
运行,生成一个文件,将所有文件合并成一个文件。我基本上想要相同类型的功能,但我需要它来生成一个CommonJS模块,用于与CommonJS兼容的系统,如NodeJS,而不是浏览器


我很难找到这样做的选项或插件。我忽略了什么吗?

您正在寻找的是
--独立的
-s
选项:

为提供的导出名称生成UMD绑定。这个包管用 与其他模块系统一起使用,并将名称设置为全局窗口 如果未找到模块系统

使用命令行

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

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

很接近。您知道有没有办法让默认导出直接注册?这种方法要求用户执行
let myModule=require(“myu模块”).default
获取导出的任何内容,如
导出默认myModule
UMD(通用模块定义)与所有三种模块加载系统兼容:CommonJS、AMD或浏览器中的脚本标记。当您需要使用CommonJS的模块时,您从模块导出的所有内容都将可用。