为何Serverless Framework的aws-nodejs模板不含package.json?
问题原因解析
1. aws-nodejs模板的设计定位
aws-nodejs是Serverless Framework提供的极简Node.js基础模板,仅保留运行Serverless服务的核心必要文件:
handler.js:业务逻辑处理入口serverless.yml:Serverless服务配置文件.gitignore:Git忽略规则
它的设计目标是提供最小化的启动环境,默认不包含package.json,因为模板假设用户要么不需要额外npm依赖,要么会根据需求手动初始化npm项目。
2. npm install --save无package.json的原因
你使用的npm 6.x版本(6.14.17)在当前目录没有package.json时,执行npm install --save lodash只会安装依赖并生成node_modules和package-lock.json,不会自动创建package.json。这是npm 6.x的默认行为,必须先执行初始化命令生成package.json后,--save参数才会将依赖写入该文件。
3. aws-nodejs-typescript模板的差异
aws-nodejs-typescript模板针对TypeScript项目设计,TypeScript本身需要编译工具(如typescript)、类型定义等依赖才能运行,所以模板初始化时会自动生成包含必要依赖和脚本的package.json,因此不存在这个问题。
解决办法
如果需要在aws-nodejs模板项目中使用npm依赖,只需在项目目录执行:
npm init -y
生成package.json后,再执行npm install --save lodash,依赖就会被正确写入package.json中。
内容的提问来源于stack exchange,提问作者arkhamDev
相关产品推荐
相关产品推荐

