typescript 找不到模块'next'或其Map的型别宣告

qojgxg4l  于 2022-11-18  发布在  TypeScript
关注(0)|答案(6)|浏览(145)

在Next.js项目中导入时获取Cannot find module '' or its corresponding type declarations.
每次导入时都会发生这种情况。Preview
Yarn版本:3.1.0-修订版2
下一个版本:11.1.2

服务器配置.json:

{
  "compilerOptions": {
    "target": "es6",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "importHelpers": true,
    "jsx": "preserve",
    // "baseUrl": "src"
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ],
}
irtuqstp

irtuqstp1#

也许只需重新启动TS服务器就可以了。

对比代码

类型:ctrl + shift + p
选择:> TypeScript: Restart TS server

igetnqfo

igetnqfo2#

如果您使用的是yarn 3,那么您需要按照以下步骤设置您的VSCode:

  • 运行yarn dlx @yarnpkg/sdks vscode
  • 打开任意TypeScript文件
  • ctrl+shift+p
  • 选择“选择类型脚本版本”
  • 选择“使用工作区版本”

阅读此处了解其他编辑

fae0ux8s

fae0ux8s3#

我尝试了Cuong Vu和其他很多人建议的解决方案,但都不起作用。对我来说,起作用的是以下解决方案:
在Yarn 2/3中,由于PnP,对node_modules文件夹中的模块的支持被删除。请按照以下步骤解决此问题。
1.在项目根目录中创建一个.yarnrc.yml文件,
1.在文件nodeLinker: node-modules中插入。
1.在终端中运行命令yarn以重新创建node_modules文件夹。
完成所有3个步骤后,问题将得到解决。

yquaqz18

yquaqz184#

在尝试其他解决方案之前:
1.再次检查是否有node_modules文件夹
1.如果没有,请运行yarn(或npm i)以(重新)安装模块
意外删除node_modules文件夹是TS2307 Cannot find module ''错误的最简单解释。
OP评论也支持
“我没有node_module文件夹。只有.yarn和yarn.lock”
h/t@geisterfurz007的评论。

zkure5ic

zkure5ic5#

我将它添加到了我的tsconfig.json文件中,我可以看到您已经有了它,但它不是我的解决方案的一部分

"moduleResolution": "node",
5n0oy7gb

5n0oy7gb6#

我想为其他可能欣赏它们的人提供更多的背景和额外的注解。
1.只要重读@Vagnerlandio Nunes的答案,它就准确无误了。问题解决了!
1.回顾/解决方案2:我只是使用npx create-next-app引导了一个新项目,在Next.js的documentation之后使用npx create-next-app@latest --typescript(使用yarn)或运行yarn create next-app --typescript
1.在得到@沃菲尔德的回答后,我注意到由于某种原因我没有node_modules文件夹,即使我运行了yarn也没有创建它,我不得不运行npm i来创建node_modules文件夹,尽管我计划使用yarn
这是我运行yarn时得到的日志。

% yarn
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: ┌ Fetch step
➤ YN0000: └ Completed
➤ YN0000: ┌ Link step
➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental
➤ YN0000: └ Completed
➤ YN0000: Done with warnings in 0s 244ms

这是我运行npm i时得到的日志。

% npm i  

added 235 packages, and audited 236 packages in 10s

78 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

现在问题解决了,错误消息也消失了!
1.但出于好奇,我再次运行了yarn,这是得到的输出。

% yarn
➤ YN0070: Migrating from Yarn 1; automatically enabling the compatibility node-modules linker 👍

➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed in 3s 864ms
➤ YN0000: ┌ Fetch step
➤ YN0013: │ word-wrap@npm:1.2.3 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ wrappy@npm:1.0.2 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ yallist@npm:4.0.0 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ yocto-queue@npm:0.1.0 can't be found in the cache and will be fetched from the remote registry
➤ YN0019: │ ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip appears to be unused - removing
➤ YN0000: └ Completed in 0s 303ms
➤ YN0000: ┌ Link step
➤ YN0007: │ core-js-pure@npm:3.25.5 must be built because it never has been before or the last one failed
➤ YN0000: └ Completed in 4s 288ms
➤ YN0000: Done in 8s 486ms

1.此外,如果您像我一样,尝试修改tsconfig.json文件

...
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
...

...
"include": [
    "next-env.d.ts",
    "pages/**/*",
    "src/**/*",
],
...

因为你认为基于这个GitHub comment它会有帮助。你现在会看到一个新的错误消息ts(2686): 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.。如果你只是简单地执行了上面的步骤,这是不必要的。所以我只是把它改回来。
1.也没有必要将tsconfig.json"compilerOptions": { ... }"jsx": "preserve"更改为"jsx": "react-jsx"(参考另一个尝试的解决方案)。
1.在任何时候,如果你想确保你所做的修改(关于tsconfig)已经生效,尝试command + shift + p并输入> TypeScript: Restart TS server,你应该看到一些刷新正在进行。

相关问题