node.js - 为客户端部署压缩 node_modules

标签 node.js npm gruntjs browserify

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

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

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

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

最佳答案

未找到 grun-package-minifier(这不是实际答案。我想在上面的答案中提出意见,但我还没有足够的声誉 :( )。

npm 安装 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 数据 错误! 404 404 未找到:grunt-package-minifier 错误! 404 错误! 404 'grunt-package-minifier' 不在 npm 注册表中。

关于node.js - 为客户端部署压缩 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239083/

相关文章:

node.js - 勒纳致命 : ambiguous argument 'origin/heads/origin/master...heads/origin/master' : unknown revision or path not in the working tree

node.js - 如何在我的 nodejs 应用程序中使用 cassandra 进行测试?

node.js - React App 安装后编译失败

node.js - 无法使用任何已安装的 npm 软件包

npm - 需要一个对等点,但没有安装

javascript - React-bootstrap Datetimepicker问题

javascript - Node.js 从 0.10.2 更新到 0.12.2 后出现错误 "ReferenceError: global is not defined"

javascript - Grunt 服务,将 root 设为子文件夹

javascript - 使用 Grunt 启动 Express 服务器

javascript - Grunt + Babel 成功运行但没有做任何事情