4

我创建了 node_modules,用于在 ngrok 的帮助下将插件从本地主机上传到在线站点,并在 CommandPrompt 中使用npm install 。但创建的 node_modules 文件夹大小为 78mb。在这种情况下,我必须通过删除不需要的文件夹来减小大小,所以我上网并得到了两个建议,因为减小大小可能很有效,它们是:使用--production 模式,另一个是使用shrinkwrap

作为第一步,我使用了这里指定的命令 npm install --productionnpm install --only=productionHow do you prevent install of "devDependencies" NPM modules for Node.js (package.json)? ,但我没有看到文件夹大小有任何变化。

然后参考如何使用该站点中给出的收缩包装来减小尺寸并进行了尝试:https ://docs.npmjs.com/cli/shrinkwrap ,但没有成功。

另外我在这里提到:https ://www.npmjs.com/package/modclean ,使用命令modclean -n default:safe我减少了 10-11mb。

但是,我仍然在 node_modules 中有大量不需要的文件夹。我在 package.json 中指定了几个需要的依赖项,如下所示,

"dependencies": {
    "atlassian-connect-express": "2.0.0",
    "body-parser": "^1.14.2",
    "compression": "^1.6.0",
    "cookie-parser": "^1.4.0",
    "errorhandler": "^1.4.2",
    "express": "^4.13.3",
    "express-hbs": "*",
    "jugglingdb-sqlite3": "0.0.5",
    "morgan": "^1.6.1",
    "static-expiry": ">=0.0.5"
}

我在 package.json 中给出的依赖项很少,但我看到在 node_modules 中创建了大量文件夹。如何减小 node_modules 的大小,还有其他过程吗?

4

1 回答 1

2

从 NPM v3 开始,您的应用程序中的所有依赖项都尽可能保留在您的顶层node_modules- 这使 NPM 更容易删除重复项,并防止 Windows 上出现一些令人讨厌的“路径太长”错误。

需要意识到的重要一点是,当我说“您的应用程序中的所有依赖项”时,我不仅仅指您package.json的那些 - 所有这些包也将具有它们自己的依赖项(并且它们的依赖项可能具有它们的依赖项)自己的,等等)。这就是为什么node_modules里面总是有这么多文件夹的原因。

举个例子 -express有 28 个依赖项,所以如果这是你唯一安装的东西,那么你的文件夹中至少有 29 个文件夹node_modules- 并且不考虑子依赖项。

所以,回答你的问题 - 除了你指定的东西,你不能让你的node_modules任何东西变小,因为你正在使用所有这些文件夹!只是并不总是以最直接的方式。

于 2017-05-09T14:00:05.263 回答