NPM尝试查找Shell脚本失败

时间:2017-01-05 13:42:53

标签: javascript npm command-line-interface

npm run build失败时的控制台输出:

  

''不被认为是内部或外部命令,可操作   程序或批处理文件。

相关的npm文件:

"scripts": {
    "postinstall": "jspm install && npm run build",
    "start": "http-server",
    "build": "./bin/build-code",
    "build-home": "./bin/build-home -dw",
    "build-common-deps": "./bin/build-common-deps -dw",
    "build-navbar": "./bin/build-navbar -dw",
    "build-root": "./bin/build-root -dw",
    "build-angular1": "./bin/build-angular1 -dw",
    "build-react": "./bin/build-react -w",
    "build-preact": "./bin/build-preact -dw",
    "build-vanilla": "./bin/build-vanillajs",
    "build-angular2": "./bin/build-angular2 -dw"
}

看起来它不理解./bin/build-code脚本位置的路径。根据我的理解,它会查找package.json位置的文件?因此,如果应用在与bin相同的目录中有package.json文件夹,则这是build-code脚本的正确路径,该脚本位于bin文件夹中。是什么赋予了?如果重要的话,使用PowerShell运行npm run build

P.S。我试过基本的命令提示符 - 没有变化。在Cygwin上运行相同构建的人(我们两个都只是从回购中提取)说他们必须将更改dos结尾改为unix"这对我来说并不是很多,而且似乎没有是问题。

1 个答案:

答案 0 :(得分:1)

在我看来,npm正在调用批处理脚本。批处理文件在CMD.exe中运行(即使从PowerShell调用),也不会将/识别为路径分隔符。这就是错误消息的来源。

将正斜杠替换为\(或\\,如果它们需要转义)。