“rollup-plugin-svelte”以下包没有导出它们的`package.json`

Posted

技术标签:

【中文标题】“rollup-plugin-svelte”以下包没有导出它们的`package.json`【英文标题】:"rollup-plugin-svelte" The following packages did not export their `package.json` 【发布时间】:2021-12-14 12:45:25 【问题描述】:

我是 svelte.js 的新手。请帮我解决它

在这里,当我在 .svelte 文件中导入 swiper carousel 时。它告诉我这个错误是

[rollup-plugin-svelte] 以下软件包未导出其package.json 文件,因此我们无法检查“svelte”字段。如果您在从包中导入 svelte 组件时遇到困难,请联系作者并要求他们导出 package.json 文件。

Screenshot of Terminal Error. Please check this

这是我的代码文件。这是轮播滑块的另一个组件。但是我在导入 swiper carousel 时看到了这张图片。

<script>
    import  Swiper, SwiperSlide  from "swiper/svelte";
    import PorfolioCard from "./../components/porfolio-card.svelte";
    import SectionTitle from "./../components/sectionTitle.svelte";
    import "swiper/css";
</script>

<section id="portfolio">
    <SectionTitle title="My Portfolio" subtitle="Visit My Portfolio And Keep your feedback" />

    <div class="mt-4 px-1 px-md-3 px-lg-5">
        <Swiper>
            <SwiperSlide>
                <PorfolioCard />
            </SwiperSlide>

            <SwiperSlide>
                <PorfolioCard />
            </SwiperSlide>

            <SwiperSlide>
                <PorfolioCard />
            </SwiperSlide>

            <SwiperSlide>
                <PorfolioCard />
            </SwiperSlide>

            <SwiperSlide>
                <PorfolioCard />
            </SwiperSlide>
            
        </Swiper>
    </div>
</section>

【问题讨论】:

【参考方案1】:

TL;DR

如果该错误来自不导出 svelte 组件的模块(例如,streamutilis-odd;导出 javascript 文件的模块),则可以安全地忽略此错误。你甚至可以通过在rollup.config.js 中覆盖onwarn 来隐藏它:

const onwarn = (message, warn) => 
    const ignored = 
        PLUGIN_WARNING: ['`package.json`'],
    ;
    const ignoredKeys = Object.keys(ignored);
    const ignoredValues = Object.values(ignored);

    for (let i = 0, l = ignoredKeys.length; i < l; ++i) 
        const ignoredKey = ignoredKeys[i];
        const ignoredValue = ignoredValues[i];

        for (const ignoredValuePart of ignoredValue) 
            if (message.code !== ignoredKey
                || !message.toString().includes(ignoredValuePart)) 
                continue;
            

            return;
        
    

    warn(message);
;

export default 
    output: 
        format: 'esm',
        name: 'app',
        dir: 'public',
    ,
    onwarn,
    plugins: [
        // your plugins, eg. `svelte()`
    ],

小解释

之所以发出它,是因为某些模块使用 exports 字段在 package.json 中指定了它们要导出的文件,但它们并未在该字段中包含 package.json 本身。这与rollup-plugin-svelte 识别导出svelte 组件的模块的方式相混淆——通过读取package.json(它不能导入特别未导出的内容!)。 Here 在插件的 Github 页面上提供了更多技术解释,关于插件为什么会这样做以及它的好处。

【讨论】:

感谢您的帮助。但仍然显示此错误...【参考方案2】:

目前没有办法消除此警告。然而,在 GitHub 存储库上有一个关于它的未解决问题。

https://github.com/sveltejs/rollup-plugin-svelte/issues/181

【讨论】:

以上是关于“rollup-plugin-svelte”以下包没有导出它们的`package.json`的主要内容,如果未能解决你的问题,请参考以下文章

以下包不支持空安全

离线安装docker最新版,记得要以下三个包。

PlayStore - 以下 APK 或应用程序包可在 64 位设备上使用,但只有本机 32 位代码:1

iOS:Xcode8以下真机测试iOS10.0和iOS10.1配置包

Ubuntu snap 如何安装本地包

错误:找不到 2 个 Android X 程序集,请确保安装以下 NuGet 包:- Xamarin.AndroidX.MediaRouter