我目前正在开发一个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.json是dist/es2015/index.js.
需要注意的重要事项:
moduleResolution是nodepackagename/从使用此模块的应用程序中导入它.现在是我的问题/问题.从这个模块导入文件时,我希望能够这样做:
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)