起きたこと
ビルドツールをシェルとかで使おうと思ったがいろいろあってcliコマンドだけで全て出来るようにしようと思ってpackage.jsonのscriptsの中にフォルダ作成やファイルコピーコマンド入れてみたら、「コマンドの構文が誤っています。」と出てきた。はい??
調べてみたら、package.jsonのscriptsセクションにコマンドを追加する際には、Windows、Mac、Linuxなどの異なるオペレーティングシステムで正しく動作するように注意する必要があるみたい。
まあたしかにlinuxコマンドをwindowsで使えないからな。package.jsonにはたしかにOSに依存するようなことを書くことは無かったなと
解決方法
なのでググってみたら、
package.jsonでフォルダ作成やファイルコピーなど出来るようにするモジュールがあることを見つけた
まずはフォルダ作成できるようにする
※元ネタ
https://stackoverflow.com/questions/38746535/creating-a-sub-folder-in-package-json
- インストール
npm install --save-dev mkdirp
- 使い方。mkdirpコマンドが使えるようになる
mkdirp ./build/images
ファイルのコピー
※元ネタ
https://maku77.github.io/nodejs/npm/npm-run-copy-file.html
- インストール
npm install --save-dev cpx
- 使い方
staticフォルダにあるファイルを全てbuildフォルダに持ってくる
cpx -C static/** build
これで、上記やったあとにビルドツールのコマンドやってやりたいことができた。
注意点
ローカルだと問題なく動作するのにAWS環境にデプロイしたらこのコマンドで無効的なエラーが出ることがある。その場合はNodeかシェルで対応