找不到模块“ts-transformer-keys”。您的意思是将“moduleResolution”选项设置为“node”,还是将别名添加到“paths”选项?

Dol*_*hin 66 typescript

我想在我的打字稿项目中使用ts-transformer-keys"typescript": "^4.5.5"。所以我将此依赖项添加到打字稿中package.json

"ts-transformer-keys": "^0.4.3",
Run Code Online (Sandbox Code Playgroud)

并将其添加为tsconfig.json这样:

"plugins": [
      { "transform": "ts-transformer-keys/transformer" }
] 
Run Code Online (Sandbox Code Playgroud)

ts-transformer-keys但是当我在当前项目中导入时:

import { keys } from 'ts-transformer-keys';
Run Code Online (Sandbox Code Playgroud)

显示错误:

Cannot find module 'ts-transformer-keys'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?ts(2792)
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?我应该怎么做才能解决这个问题?我已经运行了yarn命令。节点版本是16.13.2.

Dol*_*hin 132

此错误消息告诉您如何解决此问题,打字稿默认模块分辨率是经典的,这不会从node_modules. 那为什么告诉你没有在node_modules文件夹中找到该模块。您可以从这里阅读更多信息: https: //www.typescriptlang.org/docs/handbook/module-resolution.html,所以解决您的问题,尝试在tsconfig.json文件中添加此配置:

"moduleResolution":"node",
Run Code Online (Sandbox Code Playgroud)

  • 为了澄清这一点,您需要将其添加到“tsconfig.json”的“compilerOptions”部分。所以结果是 ```{ "compilerOptions": { ... , "moduleResolution": "node" }, ... }``` (33认同)

小智 22

添加后"moduleResolution": "node",如果仍然出现错误,请尝试关闭 vs code e 重新打开。

将 ts 添加到现有的 nextjs 项目后,这对我有用。

  • 我花了一整天才明白我必须重新打开 vscode ‍♀️‍♀️‍♀️‍♀️‍♀️ (8认同)
  • 哇,我也需要重新启动 vscode。谢谢! (3认同)