如何创建带有定义文件的NPM软件包,其中仅声明了*.ts
文件中的接口(interface)。
假设我们有两个接口(interface)和一个类定义:
export interface A {
id: number;
}
export interface B {
name: string;
}
export class C {
}
我需要将这些
*.ts
文件打包在软件包npm中,该怎么做?我应该将它们导出为index.ts
吗?我的
package.json
是:{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
我的
tsconfig.json
是:"compilerOptions": {
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
在
index.ts
里面有:import { A } from "./a";
import { B } from "./b";
import { C } from "./c";
其中
'./a', './b', './c'
是带有接口(interface)和类声明的文件。当我使用命令:
index.js
将其构建到tsc index.ts
文件时,则无法在其他项目中使用index.js
模块访问接口(interface)(npm install) 最佳答案
要将这些类型与您的软件包捆绑在一起,您需要做两件事:
"declaration"
中设置tsconfig.json
。 这告诉TypeScript生成*.d.ts
文件。 "types"
中设置package.json
。 这告诉TypeScript在哪里找到生成的*.d.ts
文件。 tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"declaration": true <----------------------
}
}
package.json
{
"name": "my-package",
"version": "1.0.0",
"main": "index.js",
"types": "index.d.ts", <----------------------
"license": "ISC",
"devDependencies": {
"typescript": "^3.8.3"
}
}
这是一个working example for you on GitHub。以上所有以及更多详细信息都是hidden in the documentation。
关于javascript - 如何使用定义文件创建npm包?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60839051/