未捕获的类型错误:无法解析模块说明符“tslib”。相对引用必须以“/”、“./”或“../”开头

Adi*_*ide 6 javascript fullcalendar npm node-modules

拜托,我开始学习npm。如果我想要安装“@fullcalendar”并使用它,我会收到错误:“未捕获的类型错误:无法解析模块说明符“tslib”。相对引用必须以“/”、“./”或“../”开头。

我有这个结构: www/templates/node_modules/www/templates/assets/calendar.js

这是我的 calendar.js 文件的开始:

import {Calendar} from '../node_modules/@fullcalendar/core/main.js';
import dayGridPlugin from '../node_modules/@fullcalendar/daygrid/main.js';
import timeGridPlugin from '../node_modules/@fullcalendar/timegrid/main.js';
import listPlugin from '../node_modules/@fullcalendar/list/main.js';

other code
Run Code Online (Sandbox Code Playgroud)

在导入 {Calendar} 的那一刻,它抛出错误。在@fullcalendar/core/main.js 我看到:

import './vdom';
import { __extends, __assign } from 'tslib';
import { render, createElement, CalendarRoot, CustomContentRenderContext, CalendarContent, flushToDom, DelayedRunner, CalendarDataManager, isArraysEqual, applyStyleProp, CalendarApi } from '@fullcalendar/common';
export * from '@fullcalendar/common';
Run Code Online (Sandbox Code Playgroud)

但我认为 tslib(和其他导入库)的方式是不正确的。但是 tslib 在目录 www/templates/node_modules/tslib 中。我不想编辑已安装的包(我认为这不是正确的方法)。我可以在 npm config 中设置路径吗?有可能的?或者最好的方法是什么?

谢谢。

小智 1

你的进口是错误的。您不需要节点模块的完整路径。您可以像这样导入它们:

    import Calendar from '@fullcalendar/core';
    import dayGridPlugin from '@fullcalendar/daygrid';
    import timeGridPlugin from '@fullcalendar/timegrid';
    import listPlugin from '@fullcalendar/list';
Run Code Online (Sandbox Code Playgroud)