2
我在我的package.json以下腳本:構建腳本在Windows上失敗,但不能在Linux或OSX
"scripts": {
"pretest": "mkdir -p build && node -e 'process.stdout.write(\"export var version = \\\"\" + require(\"./package.json\").version + \"\\\";\\n\");' > build/version.js && rollup -f umd -n d3_random -o build/d3-random.js -- index.js"
}
這在Windows上,出現以下錯誤消息完全失敗:
> [email protected] pretest C:\Users\Pepe\Dropbox\workspace\d3-random
> mkdir -p build && node -e 'process.stdout.write("export var version = \"" + require("./package.json").version + "\";\n");' > build/version.js && rollup -f umd -n d3_random -o build/d3-random.js -- index.js
[eval]:1
'process.stdout.write(export var version = "
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected token ILLEGAL
at Object.exports.runInThisContext (vm.js:53:16)
at Object.<anonymous> ([eval]-wrapper:6:22)
at Module._compile (module.js:425:26)
at node.js:587:27
at doNTCallback0 (node.js:428:9)
at process._tickCallback (node.js:357:13)
npm ERR! Test failed. See above for more details.
任何人都知道爲什麼這隻在Windows上失敗,而不是在基於Unix的系統上?
其他信息:
- OS:視窗8.1和10(與GIT-bash的測試,多方bash和Cygwin的)
- 版本的NodeJS:5.0.0
- NPM版本號:3.3.6
看起來應該是由shell處理的報價'''最終被'node'執行。歡迎轉義字符地獄 - 在Windows上! –
順便說一句,如果調用'mkdir'調用Windows內置mkdir命令,則'-p'無效。 (該命令在一個標準的Windows shell中運行,將創建兩個文件夾,其中一個名爲'-p'。) –