使用 lerna 和 typescript 配置 webpack 的别名
我创建了一个仓库来展示我遇到的问题:https://github.com/vileen/lerna-webpack-typescript-aliases-issue(出于某种原因它无法正常启动应用,但这无关紧要)。
基本上问题是如何改进从共享包的导入,更进一步,希望能去掉导入中的 src 部分。或者,也许有更好的方法来避免重新导出?
我尝试定义 webpack 别名,但没有效果。真正起作用的是在共享组件的 package.json 中添加 “main”: “src/index.tsx”,但是这会破坏 TypeScript 的 IntelliSense,所以这不是一个合适的解决方案。
我在考虑添加定义文件,甚至手动定义共享模块,但这也不是理想的,因为目前我能够查看实际代码,创建定义对我并没有太大价值,而且我需要为每个新包不断更新它。
答案#1
你需要先打包你的代码。仅仅传入 .tsx 文件是行不通的。看看这个库: https://www.npmjs.com/package/create-react-library
是的,如果你使用 TypeScript,你还需要创建一个 .d.ts 文件,用来说明你的使用者可以期待收到什么。