将一个大的node.js应用程序捆绑到一个.js文件中

我想将一个大型的node.js cli应用程序捆绑到一个.js文件中。 我的代码结构如下:

|- main.js |--/lib |----| <bunch of js files> |--/util |----| <bunch of js files> ...etc 

我可以使用browserify将整个事件绑定到一个使用main.js作为入口点的文件中,但是Browserify假定运行时环境是一个浏览器并且replace了它自己的库(例如browserify-http http )。 所以我正在寻找一个browserify-for-node命令

我试过跑步

$ browserify -r ./main.js:start --no-builtins --no-browser-field > myapp.js

$ echo "require('start') >> myapp.js

但是当我尝试运行$ node myapp.js时,出现了一些错误。

这个想法是,除了核心节点依赖关系以外,具有所有依赖关系的整个应用程序现在都在单个源文件中,并且可以运行

$ node myapp.js

更新

=============

JMM的答案如下,但只在我的机器上。 绑定仍然不能捕获所有的依赖关系,所以当我尝试在另一台机器上运行这个文件时,我得到了依赖性错误

 ubuntu@ip-172-31-42-188:~$ node myapp.js fs.js:502 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ Error: ENOENT, no such file or directory '/Users/ruchir/dev/xo/client/node_modules/request/node_modules/form-data/node_modules/mime/types/mime.types' 

查看--node选项,以及其他更精细的选项。