在“karma init”上获取“line.slice()”错误

时间:2013-09-28 19:19:03

标签: javascript node.js karma-runner

我开始阅读“开发AngularJS Edge”,我想设置正在使用的各种框架。

这本书使用了nodejs和karma,以及其他几个框架。

我在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)

请注意,此错误几乎与一个月前this person报告的堆栈跟踪相同,但该报告未收到任何响应。

8 个答案:

答案 0 :(得分:7)

可能你正在使用Git Bash终端,MinTTY,它没有完全支持TTY。

您有4种方法可以解决问题:

  1. 将CMD终端与 Windows shell (默认Windows控制台)
  2. 一起使用
  3. 将CMD终端与 Bash shell 一起使用(在cmd终端中执行@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case 21: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! Do the // contacts-related task you need to do. } else { // permission denied, boo! Disable the // functionality that depends on this permission. Toast.makeText(getActivity(), "Permission denied", Toast.LENGTH_SHORT).show(); } return; } // other 'case' lines to check for other // permissions this app might request } }
  4. 使用Powershell(Windows环境中通常默认安装的替代终端)
  5. 使用替代终端(或开发一个新终端:stuck_out_tongue_winking_eye:)
  6. 如果您只需要执行"C:\Program Files\Git\bin\bash.exe" --login -i等隔离的交互式命令,我建议使用选项1 ,然后返回Git Bash。但是我会尝试一下Powershell。

答案 1 :(得分:2)

在Cygwin中运行npm时出错的原因似乎是npm的一个已知问题。你可以使用这里提到的工作,

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

答案 2 :(得分:1)

我和MINGW64有同样的错误。

在默认命令提示符下正常运行。

答案 3 :(得分:1)

面对同样的问题。这个

节点node_modules / karma / bin / karma init

答案 4 :(得分: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”窗口时,业力安装和“业力初始化”都成功完成(或者至少它给了我“初始化”过程中的第一个问题)。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

在github shell命令窗口中运行该命令。为我工作。

答案 7 :(得分:0)

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

node karma init

这在MINGW64 / git bash shell中对我有用