找不到模块(Typescript 和 baseUrl 选项)

gno*_*me. 10 module typescript reactjs webpack

我试图在我的 typescript 项目中使用自定义路径,问题是 webpack 无法识别我的模块,从而出现“webpackMissingModule”错误。

我尝试了不同的解决方案,但对我来说没有任何作用。建议?有想法吗?

一些套餐

"react": "^16.8.4",
"react-dom": "^16.8.4",
"typescript": "3.3.1",
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve"
  },
  "include": ["./src"],
  "exclude": ["node_modules", "build"],
  "extends": "./paths.json"
}
Run Code Online (Sandbox Code Playgroud)

路径.json

{
  "compilerOptions": {
    "baseUrl": "./src",
    "paths": {
      "@src/*": ["*"],
      "@components/*": ["components/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

.env

NODE_PATH=./
Run Code Online (Sandbox Code Playgroud)

成分

import React from "react";
import Hello from "@components/Hello";

const Home = () => (
  <div>
    <h1>Home</h1>
    <Hello />
  </div>
);

export default Home;
Run Code Online (Sandbox Code Playgroud)

gno*_*me. 11

好吧,我找到了对我有用的东西。它称为 tsconfig-paths-webpack-plugin。您需要做的就是将其导入到您的 webpack 配置中,连接到 tsconfig.json,仅此而已。

该插件添加到resolve.plugins导出配置的数组中,而不是 plugins添加到根目录中。