作为第一步,我使用命令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的大小,还有其他进程吗?
从NPM v3开始,应用程序中的所有依赖项都尽可能保存在node_modules的顶层 – 这使得NPM更容易删除重复项,并防止Windows上出现一些令人讨厌的“路径太长”错误.要意识到的重要一点是,当我说“你的应用程序中的所有依赖项”时,我不只是指你们的package.json中的那些 – 所有这些包也都有自己的依赖项(并且它们的依赖项可能有他们自己的依赖关系,等等).这就是node_modules里面总是有这么多文件夹的原因.
作为一个例子 – express
有28个依赖项,所以如果这是你安装的唯一东西,那么你的node_modules中至少有29个文件夹 – 并且没有考虑子依赖项.
所以,要回答你的问题 – 除了你指定的东西,你不能让你的node_modules更小,因为你正在使用所有这些文件夹!只是不总是以最直接的方式.