从项目根目录导入打字稿

Posted

技术标签:

【中文标题】从项目根目录导入打字稿【英文标题】:Typescript import from project root 【发布时间】:2017-11-14 18:13:42 【问题描述】:

我有这样的项目文件夹:

.dist
  classes
    namespace1
      module.js
  public
  routes
     index.js
  app.js
  config.js
src
  classes
    namespace1
      module.ts
  public
  routes
    index.ts
  app.ts
  config.ts

.dist 是一个包含所有转译文件的文件夹,完全由 typescript 生成。

现在,我需要在整个项目中引用该 config.ts / config.js 文件。我可以使用 tsconfig.json 中的 baseurl 找到“config”,并且 tsc 完成了所有 src ts 文件的转换,但是当使用节点 ./.dist/app.js 通过 .dist 文件夹提供服务时会产生错误

看起来很丑 import config from '../../../config 来自 module.ts。有什么优雅的方法可以做到这一点吗?我知道我可以从 js 包装 require 函数,例如 load() 然后将其写为 load('module') 而不是 require('module') 有没有办法在打字稿中做到这一点?或者也许设置一个搜索路径?我已经尝试过 rootdirs 但效果不佳。 BaseUrl 很好,但是 .js 文件产生了错误。

谢谢

【问题讨论】:

【参考方案1】:

我知道斗争,它使生活变得悲惨。 尝试使用 Webpack。Refer this

它是一个模块加载器,为您完成转译、压缩……其他重要工作。

试一试

【讨论】:

除了webpacking没有别的办法了吗? 你有。但它有什么区别,当你所要做的就是转译和压缩时。它不是在运行时做事。 因为我已经将 webpack 用于公共文件夹,以压缩 Angular 项目。我试图找到一种使用 webpack 输出多个路径的方法,但我找不到合适的方法。

以上是关于从项目根目录导入打字稿的主要内容,如果未能解决你的问题,请参考以下文章

无法从打字稿项目中的子目录加载 React 组件

打字稿。导入“模块/子目录”npm 包时未找到环境声明

如何从 git 中排除打字稿编译的文件

打字稿模块分辨率

从打字稿的目录中实例化所有类

为啥 vscode 从打字稿缓存中导入包