如何解决找不到模块“vue-horizontal-calendar”的声明文件添加一个新的声明 (.d.ts) 文件'NO TYPESCRIPT USED IN THE PROJECT
我正在尝试使用第三方软件包,即“vue-horizontal-calendar”,但没有运气。当我将鼠标悬停在导入语句上时,它会给我这条消息:
找不到模块“vue-horizontal-calendar”的声明文件。 'Project/node_modules/vue-horizontal-calendar/lib/vue-horizontal-calendar.umd.min.js' 隐式具有 'any' 类型。
尝试 npm i --save-dev @types/vue-horizontal-calendar
(如果存在)或添加包含 declare module 'vue-horizontal-calendar';
我尝试过 'npm i --save-dev @types/vue-horizontal-calendar' 出现 404 错误。
我还尝试为该项目安装打字稿并使用 npx tsc --init
初始化 tsconfig.json 以遵循一些可能的解决方案,例如使用类型文件设置将 typeroots 添加到 tsconfig.json,将“noImplicitAny”设置为 false,使用 require 而不是导入在以下链接中提供:
Could not find a declaration file for module 'vue-xxx'
https://www.detroitlabs.com/blog/2018/02/28/adding-custom-type-definitions-to-a-third-party-library/
package.json 文件:
{
"name": "test-project","version": "0.1.0","private": true,"scripts": {
"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint"
},"dependencies": {
"core-js": "^3.6.5","vue": "^3.0.0","vue-ellipse-progress": "^2.0.0","vue-horizontal-calendar": "^0.8.2"
},"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0","@vue/cli-plugin-eslint": "~4.5.0","@vue/cli-service": "~4.5.0","@vue/compiler-sfc": "^3.0.0","babel-eslint": "^10.1.0","eslint": "^6.7.2","eslint-plugin-vue": "^7.0.0","node-sass": "^6.0.0","sass-loader": "^11.1.1"
},"eslintConfig": {
"root": true,"env": {
"node": true
},"extends": [
"plugin:vue/vue3-essential","eslint:recommended"
],"parserOptions": {
"parser": "babel-eslint"
},"rules": {}
},"browserslist": [
"> 1%","last 2 versions","not dead"
]
}
babel.config.json
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
这是我第一次遇到这个问题,我不确定这个类型的问题是什么,我是打字稿的新手(以前没有使用过打字稿)。然而,后来在节点模块文件夹中探索这个包时,我发现了以下文件夹结构:
在 package.json 中引用 index.d.ts 文件作为“类型”:“types/index.d.ts”
index.d.ts 的内容:
import { Vue } from "./vue";
import "./umd";
export default Vue;
export {
CreateElement,VueConstructor
} from "./vue";
export {
Component,AsyncComponent,ComponentOptions,FunctionalComponentOptions,RenderContext,PropType,PropOptions,ComputedOptions,WatchHandler,WatchOptions,WatchOptionsWithHandler,DirectiveFunction,DirectiveOptions
} from "./options";
export {
PluginFunction,PluginObject
} from "./plugin";
export {
VNodeChildren,VNodeChildrenArrayContents,VNode,VNodeComponentOptions,VNodeData,VNodeDirective
} from "./vnode";
另外我在上面提到的链接中的某处读到,当我们定义自定义类型声明文件时,它不应该包含任何导入和导出,而只是“声明模块‘包名’;”。
我知道我在这里遗漏了一些明显的东西,但它已经困扰了我 2 天,这是我关于堆栈溢出的第一篇文章,如果这是一个愚蠢的问题,我很抱歉。
编辑
我注意到的一件事是 import 与 require 时应用程序行为的变化
在使用导入作为 import VueHorizontalCalendar from 'vue-horizontal-calendar'
时,整个应用程序会中断,并且没有任何组件通过此控制台日志在浏览器上呈现
虽然使用 require 代替
const VueHorizontalCalendar = require('vue-horizontal-calendar')
所有其他组件都呈现为期望来自包的组件,并出现以下控制台日志错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。