我创建了node_modules,用于在nhostk的帮助下从localhost上传插件到在线站点,并在CommandPrompt中使用 npm install 。但是创建的node_modules文件夹大小为78mb。在这种情况下,我必须通过删除不需要的文件夹来减小大小,所以我上网并得到两个建议,因为它可以有效地减小尺寸,它们是:使用 - 生产模式和另一种是使用 shrinkwrap 。
作为第一步,我使用了命令 npm install --production 和 npm install --only = production ,如下所示:How do you prevent install of "devDependencies" NPM modules for Node.js (package.json)?,但我不知道看不到文件夹大小的任何变化。
然后提到如何使用shrinkwrap来减小此站点中给出的大小并尝试使用它: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的大小,还有其他进程吗?
答案 0 :(得分:1)
从NPM v3开始,应用中的所有依赖项都会尽可能保留在node_modules
的顶层 - 这样可以让NPM更轻松地删除重复项,并防止出现一些令人讨厌的路径Windows上的长'错误。
要认识到的重要一点是,当我说“你的应用中的所有依赖项”时,我不仅仅指你package.json
中的那些 - 所有那些包也将拥有自己的依赖项(并且它们的依赖项可能具有自己的依赖项,依此类推)。这就是node_modules
内部总是有这么多文件夹的原因。
作为一个示例 - express
有28个依赖关系,因此如果这是您安装的唯一内容,那么node_modules
中至少有29个文件夹 - 而且不会在-dependencies。
所以,要回答你的问题 - 除了你指定的内容之外,你不能让你的node_modules
更小,因为你正在使用所有这些文件夹!并不总是以最直接的方式。