NodeJS 在NextJs中使用绝对路径导入不起作用

hgc7kmma  于 2022-12-22  发布在  Node.js
关注(0)|答案(6)|浏览(233)

我在路由中创建了一个名为jsconfig.json的文件:

{
  "compilerOptions": {
    "baseUrl": "."
  }
}

我有最新的下一代
目前要导入组件,我必须执行以下操作:

import AppHeader from "../../../../components/common/AppHeader";

然而,有了以上这些变化,我想我可以做到这一点:

import AppHeader from "src/components/common/AppHeader";

但我得到了这样的信息:
未找到模块:无法解析"源代码/组件/公用/应用程序头"
目录结构:

/
-->lib
-->src
   -->components
-->public

有什么想法吗?我也试着把它添加到我的next.config.js文件中,但也没有什么不同:config.resolve.modules.push(__dirname)

rqqzpn5f

rqqzpn5f1#

您的文件夹结构似乎是:
根目录-〉源目录-〉组件
jsconfig文件中添加另一个属性

{

   "compilerOptions": {
     "baseUrl": "."
    },
 
    "include":["."]

}
bksxznpy

bksxznpy2#

对于那些路过的人来说,这对我很有效。将此添加到您的tsconfig.json中。

    • 系统配置json**
"module": "CommonJS",
  "baseUrl": ".",
  "paths": {
    "@/layouts/*": ["src/layoyts/*"],
    "@/components/*": ["src/components/*"],
    "@/public/*": ["./public/*"]
  }
mzillmmw

mzillmmw3#

尝试使用我的tsconfig.json,它适合我:

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "resolveJsonModule": true
  }
}

如果您在生产模式下运行脚本,也可能是运行脚本的原因。在我的示例中,我用途:

"build": "nest build"
"start:prod": "node dist/src/main"
hl0ma9xz

hl0ma9xz4#

使用npm install --save-dev typescript @types/react命令安装@类型。
您的tsconfig.json文件应该如下所示:

{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true,
    "paths": {
      "@/components/*": [
        "components/*"
      ],
      "@/public/*": [
        "public/*"
      ]
    },
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "incremental": true,
    "esModuleInterop": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": [
    "."
  ],
  "exclude": [
    "node_modules"
  ]
}
yqlxgs2m

yqlxgs2m5#

jsconfig.json中执行以下操作:

{
"compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "src/*": ["src/*"]
    }
  },
  "exclude": [
    "node_modules"
  ]
}

现在您可以访问您的文件夹,如下所示:

src/components/..
src/lib/..
vuv7lop3

vuv7lop36#

你的配置,对我很有效。只要停止并重新启动下一个服务器。

相关问题