我正在创建一个npm包,并且我已经完成了很多源代码。我在发布之前一直在本地对其进行测试,但打字稿出现两个错误。 File '<path>/McStatus.d.ts' is not a module.
和Cannot find name 'McServer'
。
我的包裹有一个src
文件夹,其中包含index.ts
和types.d.ts
。在软件包的根目录中,我有McStatus.d.ts
。
package.json:
"main": "dist/index.js",
"types": "McStatus.d.ts",
tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true
}
}
src / index.ts
export function checkStatus(server: McServer): Promise<Status> {
...
}
McStatus.d.ts
declare namespace McStatus {
function checkStatus(server: McServer): Promise<Status>
interface Status {
ping?: number
version?: string
motd?: string
players?: number
max_players?: number
}
interface McServer {
host: string
port: number
}
}
我创建了一个测试目录,并尝试了npm install <path to package>
,npm link
甚至npm pack
并安装了.tgz
文件。
我的测试文件是错误的来源
import checkStatus from 'mcstatus'
// File '/home/stphn/git/mcstatus/McStatus.d.ts' is not a module.
const options: McServer = {
// Cannot find name 'McServer'
host: "mc.stephenduvall.me",
port: 25565,
}
checkStatus(options).then(console.log).catch(console.log)