vis-timeline 和 angular 8 未找到模块错误

Posted

技术标签:

【中文标题】vis-timeline 和 angular 8 未找到模块错误【英文标题】:Module not found error with vis-timeline and angular 8 【发布时间】:2020-01-05 00:00:51 【问题描述】:

我正在尝试将“新”分叉 vis-timeline 5.1.0 与最新的 angular 8 版本一起使用,但在尝试运行应用程序时出现错误:

[ng] 错误 ./src/app/pages/interventions/interventions-details/interventions-details.page.ts [ng] 找不到模块:错误:无法解析“vis” 'D:_GIT\appbo\src\app\pages\interventions\interventions-details'

我通过 npm 安装了 vis-timeline:

npm install vis-timeline --save

然后,我安装了类型:

npm install @types/vis --save-dev

在我的页面上,我导入了该类并尝试运行该应用程序:

import  Timeline, TimelineOptions, DataItem, DataSet  from 'vis';

@Component(

    selector: 'app-interventions-details',
    templateUrl: './interventions-details.page.html',
    styleUrls: ['./interventions-details.page.scss'],
)
export class InterventionsDetailsPage extends AppBasePage implements OnInit

    @ViewChild('revisionsTimeline',  static: true ) RevisionsTimeline: ElementRef;

    constructor() 
     

    

    ngOnInit() 
    
        this.RenderTimeline();
    

    public RenderTimeline()
        
        //RANDOM DATA SOURCE FOR TESTING
        var items = new DataSet(
        [
             id: 1, content: 'item 1', start: '2014-04-20',
             id: 2, content: 'item 2', start: '2014-04-14',
             id: 3, content: 'item 3', start: '2014-04-18',
             id: 4, content: 'item 4', start: '2014-04-16', end: '2014-04-19',
             id: 5, content: 'item 5', start: '2014-04-25',
             id: 6, content: 'item 6', start: '2014-04-27', type: 'point'
        ]);

        //SOME BASIC PROPS TO CONFIG THE TIMELINE
        let timelineOptions:TimelineOptions = 
        
            start: '2014-03-10',
            end: '2014-05-10',
            verticalScroll: false,
            editable: false,
            zoomable:true, 
            locale: "pt"
        ;

        //INIT TIMELINE INSTANCE
        let timeline:Timeline = new Timeline(this.RevisionsTimeline.nativeElement, items, timelineOptions);
    


我做错了吗? 有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

由于您使用npm install vis-timeline --save 安装包,它将被保存到./node_modules/vis-timeline

要使用这个包,你需要使用vis-timeline作为包名:

import  Timeline, TimelineOptions, DataItem, DataSet  from 'vis-timeline';

看起来@types/vis 包也不适用于此。你需要@types/vis-timeline,但看起来这些还不存在。短期解决方法可能是将@types/vis 复制到您的项目中(假设它们是相同的类型)。

【讨论】:

【参考方案2】:

我将node-modules/@types/vis 复制到node-modules/@types/vis-timeline 并且成功了。这将在两天前commit 的下一个版本中修复。

编辑:v6.0.0 修复了它

【讨论】:

以上是关于vis-timeline 和 angular 8 未找到模块错误的主要内容,如果未能解决你的问题,请参考以下文章

在 vis-timeline 中,如何使时间轴用数字而不是日期/时间标记?

单元测试混合 Angular Js 和 Angular 8 应用程序

Angular 6 Docker Build - Angular 编译器中的错误需要 TypeScript >=2.7.2 和 <2.8.0,但找到的是 2.8.3

Angular 8 和 Angular 材质:使用 CdkDropList 项拖动滚动

Angular 8 和 jest - 找不到文件:jest-preset-angular/InlineHtmlStripStylesTransformer.js

Angular 8 和导入 Json