在“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的一个已知问题。 你可以使用这里提到的工作,

https://stackoverflow.com/a/22436199/2390020

可能你使用的是Git BashterminalMinTTY,它没有完全支持TTY。

你有4个选项来解决这个问题:

  1. 使用CMDterminal与Windowsshell (默认的Windows控制台)
  2. 使用CMDterminal与Bash shell (在cmdterminal执行"C:\Program Files\Git\bin\bash.exe" --login -i
  3. 使用Powershell(通常在Windows环境下默认安装的替代terminal)
  4. 使用替代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命令窗口中运行命令。 为我工作。