我正在使用Node.js在JavaScript中实现客户端应用程序。因为我将在许多机器上部署该软件,所以我想尽量减少我分发的软件包的大小。特别是,我想从node_modules中删除任何不必要的文件。
对于初学者来说,这意味着对npm
可以为我做的依赖树进行重复数据删除和修剪。但我还想删除所有package.json
文件和(特别是)部署不需要的任何其他文件。在我使用的许多软件包中,有大量的测试,多个版本的文件(缩小,浏览器化等)等。我只需要正在运行的应用程序实际使用的JavaScript文件。否则,我将分发一些实际上没有使用的100Kb文件。
我知道node-browserify
但我的应用程序将在CommonJS环境中运行,而不是浏览器,所以我想将这些模块分开并用require
加载它们。
我正在考虑编写一个使用required
遍历依赖关系树的Grunt插件,提取运行时所需的JavaScript文件并将它们写入树结构,以便使用require
加载它们(只需直接加载模块而无需package.json
)。但在我解决之前,我想确保没有人为我做过这件事。
答案 0 :(得分:2)
没有找到grun-package-minifier(这不是一个真正的答案。我想在上面的答案中得到满足,但我还没有足够的声誉:()。
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没有README数据 错误的ERR! 404 404未找到:grunt-package-minifier 错误的ERR! 404 错误的ERR! 404' grunt-package-minifier'不在npm注册表中。
答案 1 :(得分:1)
FWIW:grunt-package-minifier
。我的用例有点不寻常,因为我们正在开发cross-browser extension framework。与Browserify
类似,与标准NodeJS部署不同,我们希望最小化分发的大小,包括任何CommonJS模块。但与Browserify
不同,我们支持CommonJS,因此我们可以保留模块结构,而不是将所有内容连接成一个大文件。
基本上我从package.json
中删除所有node_modules
,README,测试文件等,但将基本JavaScript文件保存在可由CommonJS模块加载器使用的结构中。