この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
エラー内容
npxでserverless(sls)コマンドを使い、TypeScriptのテンプレートを使ってサービスを作成しようとするとエラーになります。具体的なコマンド例は以下です。
$ npm init -y
(出力は省略)
$ npm install -D serverless
(出力は省略。バージョン2.1.1のServerlessコマンドがインストールされました。)
$ npx sls create -t aws-nodejs-typescript
Serverless: Generating boilerplate...
Serverless Error ---------------------------------------
The file "package.json" already exists, and serverless will not overwrite it. Move the file and try again if you want serverless to write a new "package.json"
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: darwin
Node Version: 12.16.1
Framework Version: 2.1.1 (local)
Plugin Version: 4.0.4
SDK Version: 2.3.2
Components Version: 3.1.3
TypeScriptのテンプレートはpackage.json
を新規作成しますが、そのファイルは前段の npm init -y
ですでに作成されているためにエラーになっています。
エラー解消法
--path
か -p
オプションを使って子ディレクトリにサービスを作成しましょう。今回はkazue-test
という子ディレクトリにしています。
$ npx sls create -t aws-nodejs-typescript -p kazue-test
ただし、その子ディクトリではnpxでserverless(sls)コマンドが使えないので、再度インストールします。
$ cd kazue-test
$ npm install -D serverless
(出力は省略)
$ npm install
(出力は省略)
これで以降は問題なくnpxでserverless(sls)コマンドが使えるようになります。
$ npx sls deploy
Serverless: Bundling with Webpack...
Time: 292ms
Built at: 2020-09-22 20:33:18
Asset Size Chunks Chunk Names
handler.js 1.28 KiB 0 [emitted] handler
handler.js.map 5.27 KiB 0 [emitted] [dev] handler
Entrypoint handler = handler.js handler.js.map
[0] ./handler.ts 316 bytes {0} [built]
[1] external "source-map-support/register" 42 bytes {0} [built]
Serverless: Package lock found - Using locked versions
Serverless: Packing external modules: source-map-support@^0.5.10
Serverless: Packaging service...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
........
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service kazue-test.zip file to S3 (289.5 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............................
Serverless: Stack update finished...
Service Information
service: kazue-test
stage: dev
region: us-east-1
stack: kazue-test-dev
resources: 11
api keys:
None
endpoints:
GET - https://bc3t0ptn3l.execute-api.us-east-1.amazonaws.com/dev/hello
functions:
hello: kazue-test-dev-hello
layers:
None