javascript - 在使用 parcel js 构建后无法使用我自己的 TypeScript 库
我尝试构建自己的库以用于我的 Vue 项目的 TypeScript,但在通过 npm install git+ssh://[email :companyName/internal-lib.git#master 安装后,我无法导入该库
这是我的 internal-lib package.json
{
"name": "@companyName/internal-lib",
"private": true,
"version": "1.0.1",
"description": "",
"scripts": {
"build": "parcel build"
},
"main": "dist/main.js",
"type": "module",
"css": "dist/style.css",
"module": "dist/module.js",
"types": "dist/types.d.ts",
"targets": {
"main": {
"source": "src/main.ts"
},
"css": {
"source": "src/style.css"
}
},
"author": "",
"license": "MIT",
"dependencies": {
"dayjs": "^1.11.7"
},
"devDependencies": {
"@parcel/transformer-typescript-tsc": "^2.8.3",
"parcel": "^2.8.3",
"typescript": "^5.0.4"
}
}
这里是我的 src/main.ts
import dayjs from 'dayjs'
class UtilDatetime {
/**
*
* @param date {string}
* @param format { string}
* @return {*|string}
*/
static formatDate(date: string, format = 'DD MMMM YYYY, HH:mm Z'): string {
return date ? dayjs(date).format(format) : '-'
}
}
export { UtilDatetime }
parcel js 在这里没有构建 dist/types.d.ts,我不知道为什么
我通过 parcel build 构建它们,然后在安装上面的库并将其导入到我的 Vue 项目后
import UtilDateTime from '@companyName/internal-lib'
我的IDE说
TS7016: Could not find a declaration file for module '@companyName/internal-lib'. '/Users/myNameHere/Documents/contribute/companyName/fe/cms-thing/node_modules/@companyName/internal-lib/dist/main.js'
implicitly has an 'any' type.
Try `npm i --save-dev @types/companyName__internal-lib`
if it exists or add a new declaration (.d.ts) file containing `declare module '@companyName/internal-lib';`
但是当我这样导入时
import { UtilDatetime } from '@companyName/internal-lib/src/main'
我在构建库的时候出了什么问题吗?
为什么我不能只从 @companyName/internal-lib 导入,而是需要导入完整路径?
答案 #1
你的 tsconfig.json 看起来怎么样?
它有 declaration 选项吗?并且设置为 true 了吗?
如果不是这种情况,你应该添加它。
以下是有关声明选项的更多信息:
https://www.typescriptlang.org/tsconfig#declaration