Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svelte 有内容的sdk核心和外部依赖的问题,包括轻巧、汇总和有内容的API_Svelte_Rollup_Contentful_Svelte 3 - Fatal编程技术网

Svelte 有内容的sdk核心和外部依赖的问题,包括轻巧、汇总和有内容的API

Svelte 有内容的sdk核心和外部依赖的问题,包括轻巧、汇总和有内容的API,svelte,rollup,contentful,svelte-3,Svelte,Rollup,Contentful,Svelte 3,这是一个问题,似乎发生与苗条和外部依赖;在这种情况下,知足是罪魁祸首。至少从去年开始,这一直是一个持续的问题,并且是contentful sdk核心repo-FYI中持续讨论的一部分 希望在这里发布这个问题能让更多的人关注这个问题,也许有人会想到一个解决这个问题的方法,用于部署/构建时间 问题始于将Contentful API安装到新的或现有的运行于Rollup的Svelte项目中 将contentful导入到Svelte项目并运行开发脚本或构建脚本后,会出现以下错误: [!]错误:“平台”不

这是一个问题,似乎发生与苗条和外部依赖;在这种情况下,知足是罪魁祸首。至少从去年开始,这一直是一个持续的问题,并且是
contentful sdk核心
repo-FYI中持续讨论的一部分

希望在这里发布这个问题能让更多的人关注这个问题,也许有人会想到一个解决这个问题的方法,用于部署/构建时间


问题始于将Contentful API安装到新的或现有的运行于Rollup的Svelte项目中

contentful
导入到Svelte项目并运行开发脚本或构建脚本后,会出现以下错误:

[!]错误:“平台”不是通过节点解析导出的:empty.js,是通过节点_modules/contentful sdk core/dist/index.es-modules.js导入的
https://rollupjs.org/guide/en/#error-名称不是由模块导出的
node_modules/contentful sdk core/dist/index.es-modules.js(3:9)
1:从“快速复制”导入副本;
2:从“qs”进口qs;
3:从“操作系统”导入{platform,release};
^
问题在于
contentful-sdk-core
是依赖项的依赖项,
contentful
,但更重要的是,它们都是外部依赖项。我可以通过直接编辑有问题的文件来解决这个问题,
node\u modules/contentful sdk core/dist/index.es modules.js

通过替换“os”中的
import{platform,release}包含以下内容:

从“os”导入os;
const platform=os.platform;
const release=os.release;
但是,尽管这样做有效,但它也带来了额外的问题——它导入了整个操作系统依赖项,如果应用程序不是本地构建的,那么在尝试部署应用程序时构建仍然会中断

解决办法是什么?我是否可以强制将node_模块修复程序与应用程序捆绑在一起,以便不将其视为外部依赖项?我怎样才能做到这一点


补充资料 以下是我为解决此问题而采取的其他步骤:

package.json
中,将contentful sdk核心的修复版本安装为依赖项(而不是开发依赖项)

“依赖项”:{
“满足”:“^8.3.7”,
“内容sdk核心”:git://github.com/contentful/contentful-sdk-core.git#fix/os-错误“,
...
}
然后,这个错误消失了:

[!] Error: 'platform' is not exported by node-resolve:empty.js, imported by node_modules/contentful-sdk-core/dist/index.es-modules.js
https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module
但是产生了这些警告并破坏了我的构建:

(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
contentful-sdk-core (imported by contentful-sdk-core?commonjs-external)
(!) Missing global variable name
Use output.globals to specify browser global variable names corresponding to external modules
contentful-sdk-core (guessing '_contentfulSdkCore')
因此,通过处理它们,我修复了丢失的全局变量名警告,方法是在
rollup.config.js
中的输出对象中添加一个
globals
字段,如下所示:

导出默认值{
输入:“src/main.js”,
输出:{
...
全球:{
“contentfulSdkCore”:“\u contentfulSdkCore”
}
}, ...
最后,对于未解决的依赖项,我遵循警告消息中链接的文档,并为
contentful sdk核心
的导出默认值添加了一个
external
选项:

导出默认值{
输出:{
...
},
...
外部:['contentful-sdk-core']
进行这些更改后,警告被抑制,应用程序最终编译,但是,它立即中断,我在浏览器中收到一个控制台错误,声明:
uncaughtreferenceerror:\u contentfulSdkCore未定义

如果我将
\u contentfulSdkCore
替换为
contentful sdk core
,则控制台会产生另一个错误:
未捕获引用错误:未定义contentful
。将contentful添加到全局对象不会修复该错误