我正在构建一个npm模块。它可以成功构建并且也可以通过测试。
但是当我尝试通过npm install
将其用作第三方模块时,其声明文件无法解析绝对路径中的子模块。
目录结构如下(忽略不相关的文件):
? moneris-checkout
┣ ? dist
┃ ┣ ? test
┃ ┣ ? types
┃ ┣ ? moneris-checkout.js
┃ ┗ ? moneris-checkout.d.ts
┣ ? src
┃ ┣ ? test
┃ ┣ ? types
┃ ┗ ? moneris-checkout.ts
┣ ? package.json
┗ ? tsconfig.json
Tsconfig文件如下:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"moduleResolution": "node",
"sourceMap": true,
"baseUrl": "./src",
"rootDir": "./src",
"paths": {
"src/*": ["./src/*"]
},
"outDir": "dist",
"declaration": true
},
"lib": ["es2016"]
}
package.json类似于以下内容:
{
"name": "moneris-checkout",
"homepage": "https://github.com/bravemaster619/moneris-checkout",
"main": "dist/moneris-checkout.js",
"types": "dist/moneris-checkout.d.ts",
"scripts": {
"build": "tsc",
"test": "mocha -r ts-node/register -r tsconfig-paths/register ./src/test/**/*.spec.ts --timeout 5000"
},
"devDependencies": {
...
},
"dependencies": {
...
},
...
}
在主条目文件src/moneris-checkout.ts
中,我这样导入模块:
import ReceiptRequestInterface from "types/receipt/request";
import PreloadResponseInterface from "types/preload/response";
就可以了。
但是在声明文件dist/moneris-checkout.d.ts
中,以上代码无效。 Typescript无法从types/preload/response
等中找到模块。
我在这里想念什么?