我创建了node_modules,用于在 ngrok 的帮助下将插件从本地主机上传到在线站点,并在命令提示符中使用npm 安装。但是创建的node_modules文件夹大小为78mb。在这种情况下,我必须通过删除不需要的文件夹来减小大小,所以我上网并得到了两个建议,因为减小大小可能是有效的,它们是:使用 --生产模式,另一个是使用收缩包装。
作为第一步,我使用了命令 npm install --production 和 npm install--only=生产,如这里指定的那样:您如何防止为 Node.js (package.json) 安装"devDependencies"NPM 模块?,但我没有看到文件夹大小有任何变化。
然后参考了如何使用收缩包装来减小尺寸,如本网站所示并尝试了一下: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的大小,还有其他过程吗?
从 NPM v3 开始,在可能的情况下,应用程序中的所有依赖项都保留在node_modules
的顶层 - 这使得 NPM 更容易删除重复项,并防止 Windows 上一些令人讨厌的"路径太长"错误。
重要的是要意识到,当我说"你应用中的所有依赖项"时,我不仅仅指你package.json
中的依赖项 - 所有这些包也将有自己的依赖项(它们的依赖项可能有自己的依赖项,等等)。这就是为什么node_modules
里面总是有这么多文件夹的原因。
举个例子 -express
有 28 个依赖项,所以如果这是您唯一安装的东西,那么您node_modules
中至少有 29 个文件夹 - 而且这还没有考虑子依赖项。
因此,要回答您的问题 - 除了您指定的内容之外,您不能使node_modules
变小,因为您正在使用所有这些文件夹!只是并不总是以最直接的方式。