我试图将我的项目分开,并将逻辑作为我将最终发布的单独组件保留。现在,在我这样做之前,我想保持这样的组织:
project-a
project-b
React 应用程序的 .tsx 组件将从project-a
的 .ts 文件中提取。
我在 project-b 中继续前进并运行了yarn add ../project-a
. 这会将库安装为依赖项。然后我导入 .ts 文件,我的代码编辑器能够很好地查看所有类型和定义。伟大的!
当我运行应用程序时,Webpack 抱怨:
./node_modules/project-a/src/calc.ts 2:7
Module parse failed: Unexpected token (2:7)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|
> export enum Position {
| Inner = 0,
| Outer = 1
我不明白为什么它不将文件解析为 .ts。整个 React 应用程序都是使用 TypeScript 设置的,我什至在本地导入了一些 .ts 文件。我是否需要告诉 Webpack 将从此模块导入的文件作为 Typescript 源处理(假设 Webpack 在不需要的情况下不会尝试解析它们)?
React 模板没有设置 webpack(我假设它使用隐藏的默认值)但我能够调整 tsconfig.json 文件。我将我的模块直接路径添加到包含数组中。这似乎也没有多大作用。
基本上:我怎样才能通过上述错误并继续从我的主应用程序中的依赖模块导入 TypeScript 文件?
您必须编译project-a
为 javascript 并发出类型文件,因为从包中导入必须是 Javascript。
您从外部包获得的类型信息通过.d.ts
包旁边的文件提供。
当您导入其他包时,您总是导入 Javascript 文件。在本地事件,Webpack 不会为您编译打字稿,捆绑期间的加载程序会。所以一旦在浏览器中运行,它就是所有的 Javascript。但是您正在尝试在运行时导入 Typescript 文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句