1

When trying to create a new serverless project using the cli

sls create -t aws-nodejs -p testfolder

Serverless framework creates:

  1. handler.js
  2. serverless.yml
  3. .gitignore

Why doesn't a package.json be included and also why is only a package-lock.json file created / generated when installing npm packages e.g lodash

Running the following:

npm install --save lodash

only creates a node_module folder and a package-lock.json file. There is no package.json file. Trying to understand why as this is not the case with:

sls create -t aws-nodejs-typescript -p test
nvm: 0.39.1
node: v14.19.3
npm: 6.14.17

sls

Framework Core: 3.21.0
Plugin: 6.2.2
SDK: 4.3.2

Thank you for taking the time to read this.

arkhamDev
  • 1,028
  • 1
  • 15
  • 32
  • before nstalling lodash you need to manually initiate `npm init -y` after that install ur dependancies – cmgchess Jul 16 '22 at 16:54
  • for your second question https://stackoverflow.com/questions/44322366/how-to-install-a-package-through-npm-without-setting-up-package-json – cmgchess Jul 16 '22 at 17:01

1 Answers1

0

Yeah, the framework probably could create a package.json for you when you create a new nodejs project. However, there are several cases where a user wouldn't need any node modules at all, so it makes sense to not provide a package.json file unless the user installs other dependencies.

The typescript template is a bit different, because the Serverless Framework has a plugin system which is based on npm, so adding a plugin will require a package.json file to track the dependency.

So when you run sls create -t aws-nodejs-typescript, it automatically generates a serverless.yml file which includes the serverless-esbuild plugin, and thus creates a package.json file tracking it. The typescript template also includes a bunch of dev dependencies, which also are tracked via npm.

Aaron Stuyvenberg
  • 3,437
  • 1
  • 9
  • 21