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

9

我正在尝试在我的TypeScript项目中使用自定义路径,问题在于webpack无法识别我的模块并给出了“webpackMissingModule”错误。

我尝试了不同的解决方案,但都不起作用。有什么建议或想法吗?

一些包

"react": "^16.8.4",
"react-dom": "^16.8.4",
"typescript": "3.3.1",

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"
}

paths.json

{
  "compilerOptions": {
    "baseUrl": "./src",
    "paths": {
      "@src/*": ["*"],
      "@components/*": ["components/*"]
    }
  }
}

.env

NODE_PATH=./

组件

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

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

export default Home;
2个回答

11

我找到了适合自己的解决方案,叫做tsconfig-paths-webpack-plugin。你只需要在Webpack配置中导入它,和tsconfig.json连接起来就可以了。

这个插件需要添加在导出配置文件的resolve.plugins数组中,而不是根目录下的plugins


1
唯一起作用的方法是按以下方式更改tsconfig.json
{
  "compilerOptions": {
    // ...
    "baseUrl": "./src",
    "paths": {
      "@/*": ["src/*"]
   }
}

所有其他尝试都失败了。

Webpack不需要知道在生成输出后如何解析URL吗?它如何在没有某种插件的情况下知道如何做到这一点? - General Grievance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接