在“karma init”上获取“line.slice()”的错误
我开始阅读“开发一个AngularJS Edge”,我想设置各种使用的框架。
这本书使用nodejs和业力,以及其他几个框架。
我在Win7x32上。
我刚把我的nodejs升级到了最新版本v0.10.18。
我用“npm install -g karma”安装了Karma包。 这似乎成功完成。
然后我运行“karma init”,它是这样做的:
% karma init > readline.js:507 this.line = this.line.slice(this.cursor); ^ TypeError: Cannot call method 'slice' of undefined at Interface._deleteLineLeft (readline.js:507:25) at suggestNextOption (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:167:9) at nextQuestion (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:235:12) at process (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:250:10) at Object.exports.init (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:352:6) at Object.<anonymous> (C:\Users\David\AppData\Roaming\npm\node_modules\karma\bin\karma:25:37) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12)
请注意,这个错误实际上与此人在一个月前报告的堆栈跟踪相同,但该报告没有收到任何回应。
在Cygwin中运行npm的错误原因似乎是npm的一个已知问题。 你可以使用这里提到的工作,
可能你使用的是Git BashterminalMinTTY,它没有完全支持TTY。
你有4个选项来解决这个问题:
- 使用CMDterminal与Windowsshell (默认的Windows控制台)
- 使用CMDterminal与Bash shell (在cmdterminal执行
"C:\Program Files\Git\bin\bash.exe" --login -i
) - 使用Powershell(通常在Windows环境下默认安装的替代terminal)
- 使用替代terminal(或开发新的terminal:stuck_out_tongue_winking_eye:)
如果你只需要执行像karma init
这样的隔离的交互式命令,我推荐使用选项1 ,然后回到Git Bash。 不过我会试试Powershell。
我得到了和MINGW64一样的错误。
在默认命令提示符下正常运行。
我没有提到的另一个可能的相关点是我从Cygwin rxvt窗口运行这些命令。
我只是尝试完全卸载nodejs并重新安装它。
当我再次调出rxvt窗口并运行“npm install -g karma”时,失败了以下内容:
/c/Program Files/nodejs/npm: line 2: $'\r': command not found /c/Program Files/nodejs/npm: line 4: $'\r': command not found /c/Program Files/nodejs/npm: line 5: syntax error near unexpected token `$'in\r'' 'c/Program Files/nodejs/npm: line 5: `case `uname` in
这导致我在网上search这个错误,我发现这个线程 ,这意味着它不支持Cygwin(不幸的,但不是一个巨大的问题)。
当我提出一个简单的,丑陋的,不友好的“cmd”窗口时,业务安装和“karma init”成功完成(或者至less在“init”过程中给了我第一个问题)。
在我的情况下,问题是我在窗口中使用git bashterminal。 当我在cmd窗口中运行命令时,它工作正常。
在github shell命令窗口中运行命令。 为我工作。