为客户端部署压缩node_modules

我正在使用Node.js在JavaScript中实现一个客户端应用程序。 因为我将在许多机器上部署软件,所以我想尽量减less我分发的软件包的大小。 特别是,我想从node_modules中删除任何不必要的文件。

对于初学者来说,这意味着删除和修剪依赖树,而npm可以为我做的。 但是我也想删除所有的package.json文件和(特别是)任何其他不需要部署的文件。 在我使用的许多软件包中有大量的testing,多个版本的文件(缩小,浏览等)等等。 我只需要运行应用程序实际使用的JavaScript文件。 否则,我将分发几个100Kb的文件,但实际上并没有使用。

我知道node-browserify但我的应用程序将运行在CommonJS环境,而不是一个浏览器,所以我想保持模块分开,并加载require

我正在考虑编写一个Grunt插件,它使用required的脚本遍历依赖关系树,在运行时拉出required的JavaScript文件,并将它们写入树结构,以便使用require来加载它们(只需直接加载模块而不需要package.json )。 但是,在我解决之前,我想确保没有人为我做这件事。

       

网上收集的解决方案 "为客户端部署压缩node_modules"

FWIW: grunt-package-minifier 。 因为我们正在开发一个跨浏览器的扩展框架,所以我的用例有点不同寻常。 和Browserify一样,不同于标准的Browserify部署,我们希望尽可能减less我们发行版本的大小,包括任何CommonJS模块。 但与Browserify不同的Browserify我们支持CommonJS,所以我们可以保留模块结构,而不是将所有内容连接成一个大文件。

本质上,我将所有package.json ,README,testing文件等都从node_modules但将基本的JavaScript文件保存在CommonJS模块加载器可以使用的结构中。

grun-package-minifier没有find(这不是一个实际的答案,我想commet在上面的答案,但我没有足够的声誉呢:()。

npm install grunt-package-minifier –save-dev密码:npm WARN package.json zigbee_gateway_js@0.0.0没有版本库字段。 npm WARN package.json zigbee_gateway_js@0.0.0没有自述文件数据npm ERR! 404 404找不到:grunt-package-minifier npm ERR! 404 npm ERR! 404'grunt-package-minifier'不在npmregistry中。