2013-06-21 80 views
6

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

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

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

我在考虑写一咕噜插件,使用走在required依赖关系树,翻出在运行时所需要的JavaScript文件,因此他们可以使用require(只需直接加载模块,而不加载并将其写入到一个树形结构需要package.json)。但在我解决之前,我想确保没有人为我做这件事。

回答

2

FWIW:grunt-package-minifier。由于我们正在开发cross-browser extension framework,所以我的用例有点不寻常。和Browserify一样,并且与标准的NodeJS部署不同,我们希望将包括任何CommonJS模块在内的分布规模减至最小。但与Browserify不同,我们支持CommonJS,因此我们可以保留模块结构而不是将所有内容连接成一个大文件。

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

2

GRUN - 封装 - minifier没有发现(这是不是一个实际的答案。我想commet以上的答案,但我没有足够的声誉还:()。

NPM安装咕噜 - 封装 - minifier --save-dev 密码: npm WARN package.json [email protected]没有版本库字段 npm WARN package.json [email protected]没有自述文件数据 npm ERR!404 404未找到:grunt-package- minifier npm ERR!404 npm ERR!404'grunt-package-minifier'不在npm注册表中

+0

I prob干脆没有把它添加到NPM中,但它可以从Github通过我的答案中的链接获得。 –