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'。) –