相关疑难解决方法(0)

TypeScript导入路径别名

我目前正在开发一个TypeScript应用程序,它由多个用TypeScript编写的Node模块组成,它们安装在node_modules目录中.

在继续之前,我想指出我使用的是TypeScript 2.0,如果需要,我也不会对使用2.1 dev版本产生不利影响.我只是想让这个工作.

每个Node模块的结构都是这样的:

dist/
    es2015/
        index.js
        utils/
            Calculator.js
            Calculator.d.ts
            Date.js
            Date.d.ts
            Flatpack.js
            Flatpack.d.ts
src/
    index.ts
    utils/
        Calculator.ts
        Date.ts
        Flatpack.ts
Run Code Online (Sandbox Code Playgroud)

dist文件夹是生成的源,使用outDir我的tsconfig.json文件内部配置此路径.我还配置了main在我的财产package.jsondist/es2015/index.js.

需要注意的重要事项:

  • 在我的项目中,我使用的moduleResolutionnode
  • 我正在使用TypeScript 2.0
  • 我不是问如何从包中导入文件.我通过Npm安装软件包,然后packagename/从使用此模块的应用程序中导入它.

现在是我的问题/问题.从这个模块导入文件时,我希望能够这样做:

import {Sin, Cos, Tan} from "common-utils/utils/Calculator";
Run Code Online (Sandbox Code Playgroud)

但是,该文件无法解析到该dist/es2015/utils目录.理想情况下,我希望我的导入可以从此特定dist文件夹中解析,而不是从根目录解析,这似乎正在发生.

上面的导入需要写成以下内容才能使其工作:

import {Sin, Cos, Tan} from "common-utils/dist/es2015/utils/Calculator";
Run Code Online (Sandbox Code Playgroud)

但是,dist/es2015每次写作都不理想,只是让一些导入看起来很长.有没有办法可以配置我的模块来解析dist/es2015目录?我不想在我的项目中放入覆盖,理想情况下,每个模块都会指定文件的解析位置.

如果你在Jspm中创建一个与Jspm一起使用的插件/模块时仍然不确定我在问什么(我道歉,如果这令人困惑),你可以package.json在模块内部指定如下内容:

  "jspm": {
    "registry": "npm",
    "jspmPackage": true,
    "main": "my-module",
    "format": …
Run Code Online (Sandbox Code Playgroud)

typescript typescript2.0

53
推荐指数
2
解决办法
5万
查看次数

标签 统计

typescript ×1

typescript2.0 ×1