找不到模块'ts-node/register'

len*_*nny 34 mocha.js node.js typescript

我想用mocha来测试我的TypeScript/Angular2项目.我试图用TS-节点描述在这里:

npm install -g ts-node
Run Code Online (Sandbox Code Playgroud)

但是跑步的时候

mocha --require ts-node/register -t 10000 ./**/*.unit.ts
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

找不到模块'ts-node/register'

我在这里错过了什么?

Lou*_*cin 50

由于适用于很多人的答案似乎隐藏在评论中,我会将其作为问题的实际答案发布,现在问题已经重新打开.

我也有这个问题.不确定为什么这个Q已被关闭.但在本地安装ts节点修复此问题.npm install ts-node --save-dev

谢谢@Anita,因为这也是对我有用的答案.

  • 您还必须安装打字稿`npm install typescript --save` (5认同)
  • 在我的 Linux 机器上,我实际上还需要全局安装它 `sudo npm install ts-node -g` (4认同)
  • 有时您不想将 `ts-node` 放在包 deps 中,而是想使用全局的。对于这种情况,使用“npm link ts-node”将本地包链接到全局包可以解决问题。 (3认同)
  • 我也想确认一下@Lonely所说的。在 `npm install ts-node --save-dev` 之后,我收到了有关 typescript 的错误,因此我安装到 devDepenancies: `npm install typescript --save-dev` 现在我没有收到此错误。 (2认同)
  • 我做了 `npm install ts-node`、`npm install ts-node -g`、`npm install ts-node --save-dev` 都不起作用。我还有什么其他选择? (2认同)

Sib*_*enu 10

哇,一个愚蠢的错误会花费你时间。当我尝试调试我的nodejs应用程序时,我遇到了同样的问题。我犯的错误是我在我.vscodenodejs应用程序文件夹(其中包含的目录node_modules)之外创建了我的文件夹。当我移动.vscode到那个文件夹时,一切正常。下面是我的launch.json文件。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "index",         
            "args": [
                "src/index.ts"
            ],
            "runtimeArgs": [
                "-r",
                "ts-node/register"
            ],
            "cwd": "${workspaceFolder}",
            "protocol": "inspector",
            "internalConsoleOptions": "openOnSessionStart"           
        }
    ],
    "compounds": []
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 如果您不想移动 vscode 文件夹,请使用;`./myproj/node_modules/ts-node/register` (4认同)

kae*_*ael 5

我知道这有点旧,但我也遇到了这个问题,并想提供我目前正在使用的解决方案。

ts-node使用sudo npm i -g ts-node. 为了使用 mocha 进行这项工作,我只需要为 mocha 提供模块的绝对路径,如下所示:

mocha -r /usr/lib/node_modules/ts-node/register test/*Test.ts
Run Code Online (Sandbox Code Playgroud)

希望能帮助别人。