web-dev-qa-db-ja.com

WindowsのNPMスクリプトでmkdirを使用できない

次のようなスクリプトを作成しようとしています。

{
    "scripts":
        "setup": "mkdir -p ./my-dir"
}

Git Bashプロンプトから実行しても、少なくともWindowsでは失敗します。 mkdir ./my-dirは機能しません。失敗する理由がわかりません。

それが与えるエラーは「構文が正しくない」エラーです:

> [email protected] stage C:\my-app
> mkdir ./my-dir

The syntax of the command is incorrect.

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "stage"
npm ERR! node v6.4.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] stage: `mkdir ./my-dir`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] stage script 'mkdir ./my-dir'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the my-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     mkdir ./my-dir
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs my-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls my-app
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\my-app\npm-debug.log

これが機能しない場合、空のディレクトリを初期化するためのクロスプラットフォーム対応の方法はありますか?

20
samanime

このモジュールはおそらくあなたの問題を解決します: https://www.npmjs.com/package/mkdirp

9

NpmはLinuxではなく、Windowsのmkdirコマンドを使用しています。使用する

"setup": "mkdir .\\my-dir"

バックスラッシュを使用します。

Cygwinをインストールして実行することもできます。

/cygwin64/bin/mkdir -p mydir
2
abentan

Mkdirpモジュールをお勧めします。これは非常に軽量なソリューションなので、必要なものに適しています

https://www.npmjs.com/package/mkdirp

0
Ben Rauzi

npxplusmkdirp グローバルインストールなしの比較的軽量なポータブルソリューション用

これをpackage.jsonに追加:

"scripts": {
  "create-dir": "npx mkdirp _site/assets",
}

そして、このように使用します:

$ npm run create-dir
0
KyleMit