将一个大的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
选项,以及其他更精细的选项。
- 是否有可能通过浏览器创build到redis服务器的连接?
- 我可以在浏览器/ node.js上使用不同的库,而无需编辑package.json?
- 使用Grunt-babelify-browserify而不导入节点模块
- 使用Browserify进行多种构buildconfiguration的复杂骨干应用程序
- 如何通过browserify获得缩小的输出?
- 无法获取libphonenumber npm包工作,fs.readFileSync不是一个函数错误
- javascript节点模块和纯脚本引用如何在浏览器中共存?
- 沃森视觉识别运行错误
- 当使用browserify将一个socket.io依赖项与–node标志绑定在一起时,“Error:Can not find module”