我正在使用Node.js在JavaScript中实现客户端应用程序。因为我将在许多计算机上部署该软件,所以我希望最小化我分发的软件包的大小。特别是,我想从node_modules中删除所有不必要的文件。
对于初学者来说,这意味着对依赖项树进行重复数据删除和修剪,这npm对我来说可以做。但我也想删除所有package.json文件,尤其是部署不需要的其他文件。在我使用的许多程序包中,都有大量的测试,文件的多个版本(最小化,浏览器化等)等。我只需要正在运行的应用程序实际使用的JavaScript文件。否则,我将分发一些实际未使用的文件100Kb。
npm
package.json
我知道,node-browserify但是我的应用程序将在CommonJS环境中运行,而不是在浏览器中运行,因此我想将模块分开并用加载它们require。
node-browserify
require
我正在考虑编写一个Grunt插件,该插件使用遍历依赖树required,提取运行时所需的JavaScript文件,并将其写入树形结构,以便可以使用加载它们require(只需直接加载模块而无需package.json)。但是我想确保在解决之前没有人为我做到这一点。
required
FWIW :grunt-package-minifier。我的用例有点不寻常,因为我们正在开发一个跨浏览器的扩展框架。Browserify与标准NodeJS部署类似,与之不同,我们希望最小化分发的大小,包括任何CommonJS模块。但是与Browserify我们支持CommonJS的方式不同,我们可以保留模块结构,而不是将所有内容串联到一个大文件中。
grunt-package-minifier
Browserify
从本质上讲,我package.json从中剥离了所有,自述文件,测试文件等,node_modules但将必需的JavaScript文件保留在可由CommonJS模块加载器使用的结构中。
node_modules