我有两个node.js / npm的安装,一个是1.4.28,一个是3.1.0
通过使用包含以下内容的package.json文件部署相同的应用程序:
{
"name": "server",
"version": "0.0.1",
"description": "js server",
"dependencies": {
"async": "^1.3.0",
"aws-sdk": "^2.1.36",
"body-parser": "^1.13.2",
"ejs": "^2.3.2",
"express": "^4.13.1",
"generic-pool": "^2.2.0",
"multer": "^0.1.8",
"mysql": "^2.7.0",
"node-uuid": "^1.4.3",
"nodemailer": "^1.4.0",
"nodemailer-smtp-transport": "^1.0.3",
"password-hash-and-salt": "^0.1.2",
"pm2": "^0.14.3",
"redis": "^0.12.1",
"redis-sessions": "^0.3.9",
"request": "^2.58.0",
"socket.io": "^1.3.5",
"winston": "^1.0.1",
"yauzl": "^2.3.1"
}
}
版本1.4.28,在没有任何node_modules目录的全新安装上运行npm install后,如果填充了正确的必需模块:
在版本3.1.0上,我得到了大量的子安置,在我看来是不需要的:
所以任何人都可以向我解释一下发生了什么以及为什么我会把所有这些deps拉进去?我也试过 - 生产什么在npm没有成功......
非常感谢!
答案 0 :(得分:2)
这是新的npm 3. *功能。从下午blog开始:
使用npm @ 3,您的node_modules目录将更加平坦。所有的 您的依赖项和大多数子依赖项(和 (sub)+ dependencies)将在顶部彼此相邻 水平。只有在存在冲突时才会安装模块 更深层次。这应该使Windows用户更容易。