在 "karma init" 中使用 "line.slice()" 出错了

7

我开始阅读《开发AngularJS应用》一书,想要设置各种使用的框架。

该书使用Node.js和Karma以及其他几个框架。

我使用的操作系统是Win7x32。

我刚刚将我的Node.js升级到最新版,即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)

请注意,此错误与一个月前这个人报告的堆栈跟踪几乎完全相同,但该报告未收到任何回复。

无法在 Windows 7 Ultimate(32位和64位)上使用node 0.10.18,karma 0.10.2进行复现。 - SheetJS
有没有其他的诊断工具可以生成,以提供更有意义的信息? - David M. Karr
你是使用nodejs.org上的安装包进行安装的吗? - SheetJS
8个回答

7

可能你正在使用Git Bash终端,MinTTY,并不完全支持TTY。

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

  1. 使用CMD终端与Windows shell(默认的Windows控制台)
  2. 使用CMD终端与Bash shell(在cmd终端中执行"C:\Program Files\Git\bin\bash.exe" --login -i)
  3. 使用PowerShell(通常在Windows环境中默认安装的另一种终端)
  4. 使用其他的终端(或者开发一个新的 :stuck_out_tongue_winking_eye: )

如果你只需要执行像karma init这样的孤立交互式命令,我建议选择选项1,然后返回Git Bash。但是,我会尝试使用Powershell。


2

是的,我忘记了这个问题。我很久以前就发现了这个解决方法。 - David M. Karr

2

遇到了相同的问题。尝试一下这个:

node node_modules/karma/bin/karma init


1

我在MINGW64上遇到了同样的错误。

在默认命令提示符上可以正常运行。


0

还有一个可能相关的点,我没有提到的是,我是从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

这促使我在网上搜索该错误,并找到了这个thread,它暗示它根本不支持Cygwin(不幸的是,但并不是一个巨大的问题)。
当我打开一个简单、丑陋、不友好的“cmd”窗口时,“karma”安装和“karma init”都成功完成了(或者至少给了我“init”过程中的第一个问题)。

0

在 Github Shell 命令窗口中运行该命令。这对我有用。


0
在我的情况下,问题是我在Windows中使用了git bash终端。当我在cmd窗口中运行命令时,它可以正常工作。

0

如果你打开 karma 文件,它只是一个节点脚本,因此另一种执行它的方法是:

node karma init

这个方法适用于我在MINGW64/git bash shell中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接