0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Lambda Layers(Node.js)のローカル開発でESLintもPrettierもJestも動かなくなった

Posted at

起きた現象

複数のLambdaの関数とLambda Layersを含むリポジトリでローカル開発をしていたところ、関数の方はVSCodeのPrettierもESLintもJestも問題なく動作したが、Lambda Layersの方ではそれらが全く動作しなくなった
〇〇.spec.ts〇〇.test.tsに変更したり.vscode/settings.jsonを配置しなおしたりしてみたがいずれも効果が無かった

環境

  • Ubuntu20.04(WSL2)
  • VSCode

結論

ディレクトリ名がnode_modulesだったから

詳細

以下のような構成で開発していたんですが、Lambda Layersのパスにnode_modulesが含まれてました
恐らくNode周りのツールはnode_modules以下のファイルを無視するというのをノーコンフィグで内部的に行っていると思われ、今回のLambda Layersは無視されてしまったということだと解釈

ディレクトリ構成
-- lambdaFunctions
   ├ 関数1
   ├ 関数2
   ├ ...以下同様
-- layers/nodejs/node_modules/myLayer
                                 ├ index.js
                                 ├ index.spec.js
                                 ├ node_modules

解決策

以下のようにLayers開発用ディレクトリとLayers配置ディレクトリを分けることで周辺ツールが開発時に動作するようになった
layersDevで開発した後、bashスクリプトかなにかでmyLayer以下にビルドされたファイルが配置されるようにCI等で実行すれば従来通り動作する

新ディレクトリ構成
-- lambdaFunctions
   ├ 関数1
   ├ 関数2
   ├ ...以下同様
-- layers/nodejs/node_modules/myLayer
                                 ├ index.js
                                 ├ node_modules
-- layersDev
   ├ index.ts
   ├ index.spec.ts
   ├ node_modules
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?