压缩node_modules以进行客户端部署

Mat*_*ner 6 node.js npm browserify gruntjs

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

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

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

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

Mat*_*ner 1

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

本质上,我剥离了所有的package.json、README、测试文件等,node_modules但将基本的 JavaScript 文件保留在可由 CommonJS 模块加载器使用的结构中。