首页 > 解决方案 > 你能在不捆绑特定路径模块的情况下让 webpack 解析 tsconfig 路径吗?

问题描述

我有一个tsconfig.json文件,其中包含paths要在我的打字稿中使用和tsconfig-paths-webpack-plugin供 webpack 使用的文件。但是,其中一个路径引用了位于项目目录之外的共享库。当我尝试将应用程序与 webpack 捆绑时,它会伸出手并适当地获取库并将其添加到包中。有没有办法让它不捆绑这个外部模块,而只是让它在捆绑时调整 require 语句?

我已经尝试externals在 webpack 中的选项中添加一个正则表达式,这样可以防止模块被捆绑。但是,tsconfig-paths-webpack-plugin不会评估 import 语句,它保持@libs/[MY_LIB]在编译代码中,而不是"../../../libs/[MY_LIB]"

{
   // ...
   externals: [
      NodeExternals(),
      /^@libs.*/
   ],
}

最终目标

// This is in the typescript
import * as myLib from "@libs/MY_LIB";

// Should become the following
const myLib = require("../../../libs/MY_LIB");

标签: typescriptwebpacktsconfigwebpack-externalstsconfig-paths

解决方案


推荐阅读