2016-12-20 3 views
1

Я использую Cygwin bash на окнах. Когда я бегу mkdir -p dist/ts, он отлично работает. Но когда же добавляется скрипт в package.json какПочему mkdir <path> не удается выполнить npm в Windows?

"scripts": { 
    "test1": "mkdir -p dist/ts " 
    } 

НПМ возвращает следующую ошибку:

The syntax of the command is incorrect. 

npm ERR! Windows_NT 6.3.9600 
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\mmauricepinto\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "run" "test1" 
npm ERR! node v5.10.1 
npm ERR! npm v3.8.6 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] test1: `mkdir -p dist/ts` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] test1 script 'mkdir -p dist/ts'. 
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 angular2-google-maps package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  mkdir -p dist/ts 
npm ERR! You can get information on how to open an issue for this project with: 
npm ERR!  npm bugs angular2-google-maps 
npm ERR! Or if that isn't available, you can get their info via: 
npm ERR!  npm owner ls angular2-google-maps 
npm ERR! There is likely additional logging output above. 

npm ERR! Please include the following file with any support request: 
npm ERR!  C:\cygwin\home\mmauricepinto\Startup\angular2-google-maps\npm-debug.log 
+1

вопросы разрешения? –

+0

package.json имеет 777 для всех. Команда работает нормально при прямом запуске –

+0

Проверьте разрешение каталога. Вероятно, 'npm' не имеет достаточного разрешения на создание папки в этом каталоге. –

ответ

1

Это что-то с файловой системой в окнах, где обратные косые следует использовать при использовании MKDIR. Проверьте последний абзац этой статьи: https://www.windows-commandline.com/create-directory-command-line

Используйте это:

"scripts": { 
    "test1": "mkdir -p dist\\ts" 
    } 

Вы должны использовать два backslahes \\ becouse он интерпретируется как последовательность эвакуации в этом случае.