Help us understand the problem. What is going on with this article?

serverlessでデプロイパッケージからディレクトリごとをexcludeする

More than 3 years have passed since last update.

serverlessで作成したデプロイパッケージを確認したところ、.gitがexcludeされてなかったので設定されるようにしました。

実行環境

$ uname -a
Darwin xxxxxx 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
$ node -v
v6.7.0
$ serverless -v
1.0.2
$ cat /usr/local/lib/node_modules/serverless/node_modules/glob/package.json | grep '"version"'
  "version": "7.1.0"

デフォルトのexclude設定

デフォルトの設定を確認した限りではexcludeしてくれそうに見えます。

https://github.com/serverless/serverless/blob/master/lib/plugins/package/lib/packageService.js#L7

[
  '.git',
  '.gitignore',
  '.DS_Store',
  'npm-debug.log',
  'serverless.yaml',
  'serverless.yml',
  '.serverless',
]

必要な設定

package:
  exclude:
    - .git/**

原因のコード

アーカイブするファイル一覧を作っている場所は以下です。

https://github.com/serverless/serverless/blob/master/lib/plugins/package/lib/zipService.js#L28

      const files = glob.sync('**', {
        cwd: servicePath,
        ignore: exclude,
        dot: true,
        silent: true,
      });

globの要求されている動作を調べていないのでわかりませんが、元の設定で除外してくれたほうが嬉しいですね。
時間があれば週末に調べて修正してpull request出したいと思います。

おまけ

ついでにいらなそうなファイルもexcludeして以下のような設定になりました。

package:
  exclude:
    - .git/**
    - test
    - test/**
    - node_modules/.bin
    - node_modules/.bin/*
    - node_modules/aws-sdk
    - node_modules/aws-sdk/**
    - event.json
    - README.md
ikeisuke
lifull
日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。
https://lifull.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away