【问题标题】:Svelte error after build in console: 'App is not defined'在控制台中构建后出现 Svelte 错误:“未定义应用程序”
【发布时间】:2020-12-15 20:57:04
【问题描述】:

我正在使用带有 Rollup 的 Svelte 开发一个应用程序,我遇到了这样一个问题,当我编译它时,它会给我一个关于 App 缺失的警告:

 No name was provided for external module 'C:\...path...\App.svelte' in output.globals – guessing 'App'

启动时控制台显示:

Uncaught ReferenceError: App is not defined
    at main.js:5

我的汇总配置: Pastebin

main.js:

import App from './App.svelte';

const app = new App({
    target: document.body
});

export default app;

感谢您的回答!

【问题讨论】:

    标签: javascript svelte rollup


    【解决方案1】:

    问题在于汇总配置中的 external 设置。您正在从rollup-plugin-node-builtins 传递builtins 函数。由于此函数返回一个真实值,因此 Rollup 假定您导入的每个模块都是外部的。

    外部键接受一个模块名称数组,或一个函数,该函数接受模块名称并在它应该被视为外部时返回 true。

    请参阅 external 上的汇总文档。

    您需要在此处传递一个数组,其中包含您希望视为外部的模块。您是否打算在此处传递 builtin-modules 导入?我在rollup-plugin-node-resolve README 中找到了这个例子。

    import resolve from 'rollup-plugin-node-resolve';
    import builtins from 'builtin-modules'
    export default ({
      input: ...,
      plugins: [resolve()],
      external: builtins,
      output: ...
    })
    

    【讨论】:

    • 我有点没听懂你的回答。抱歉,我不太擅长使用 Rollup 配置,你能告诉我们更多吗?
    • 如果你在你的配置中去掉“external”行,构建工作。你能告诉我你为什么首先添加那行吗?或者,如果您在删除该行后遇到不同的错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    相关资源
    最近更新 更多