@汇总/插件类型脚本可以';找不到JSON文件

@汇总/插件类型脚本可以';找不到JSON文件,json,typescript,svelte,Json,Typescript,Svelte,我已经设置了一个Svelte项目,希望使用JSON文件来使用Svelte i18n包。 不幸的是,我无法导入JSON文件。 它所需的软件包已经安装,但我不知道为什么它的Typescript方面不接受它 我有一个最小的 导入JSON文件会导致以下错误消息: (!)插件类型脚本:@rollup/Plugin-typescript TS2732:找不到模块'./locale.de.json'。考虑使用'-RealvijJMulk模块'导入'.jSO'扩展模块 //rollup.config.js t

我已经设置了一个Svelte项目,希望使用JSON文件来使用Svelte i18n包。 不幸的是,我无法导入JSON文件。 它所需的软件包已经安装,但我不知道为什么它的Typescript方面不接受它

我有一个最小的

导入JSON文件会导致以下错误消息:

(!)插件类型脚本:@rollup/Plugin-typescript TS2732:找不到模块'./locale.de.json'。考虑使用'-RealvijJMulk模块'导入'.jSO'扩展模块
//rollup.config.js

typescript({
    sourceMap: dev,
    inlineSources: dev,
    resolveJsonModule: true
  })
从“汇总插件svelte”导入svelte;
从“@rollup/plugin node resolve”导入解析;
从“@rollup/plugin commonjs”导入commonjs;
从“汇总插件livereload”导入livereload;
从'rollup plugin terser'导入{terser};
从“svelte预处理”导入sveltePreprocess;
从“@rollup/plugin typescript”导入typescript;
从“@rollup/plugin json”导入json;
常数生产=!process.env.ROLLUP\u WATCH;
函数serve(){
让服务器;
函数toExit(){
if(server)server.kill(0);
}
返回{
writeBundle(){
如果(服务器)返回;
server=require('child_process')。spawn('npm',['run','start','--','--','--dev']{
stdio:['ignore','inherit','inherit'],
壳牌:是的
});
过程。关于('SIGTERM',toExit);
进程。在('exit',toExit');
}
};
}
导出默认值{
输入:“src/main.ts”,
输出:{
sourcemap:true,
格式:“iLife”,
名称:“应用程序”,
文件:“public/build/bundle.js”
},
插件:[
json({
紧凑型:正确
}),
苗条的({
戴夫:制作,
css:css=>{
write('bundle.css');
},
预处理:SvelteProcess(),
}),
决心({
浏览器:是的,
重复数据消除:['svelte']
}),
commonjs(),
打字稿({
sourceMap:!生产,
在线资源:!生产
}),
!生产和服务(),
!production&&livereload('public'),
生产和精简(&terser)
],
观察:{
透明屏幕:错误
}
};
//tsconfig.json

{
“resolveJsonModule”:true,
“模块”:“esnext”,
“源地图”:正确,
“扩展”:“@tsconfig/svelte/tsconfig.json”,
“包括”:[“src/***”],
“排除”:[“节点\模块/*”,“工兵\工兵/*”,“公共/*”]
}

我也有同样的问题。在
rollup.config.js
中的每个typescript调用中添加
resolveJsonModule:true
,可以解决这些问题

这让我想到了一点,即rollup插件不会以预期的方式将tsconfig与覆盖合并

rollup.config.js

typescript({
    sourceMap: dev,
    inlineSources: dev,
    resolveJsonModule: true
  })
tsconfig.js

{
  "extends": "@tsconfig/svelte/tsconfig.json",
  "compilerOptions": {
    "lib": ["DOM", "ES2017", "WebWorker"]
  },
  "esModuleInterop": true,
  "resolveJsonModule": true,
  "include": ["src/**/*", "src/node_modules/**/*"],
  "exclude": ["node_modules/*", "__sapper__/*", "", "static/*"],
  "types": ["svelte", "@sapper"]
}

顺便说一句,我也在测试i18n;)

我已经看过你的repo
register('en',()=>import('../../public/lang/en.json');寄存器('de',()=>import('./locale.de.json')-->哪里是
'./locale.de.json'
?它在公用文件夹中,假设那里可能发生了什么。这基本上是我这边的尝试和错误。我希望第一个版本能够正常运行。感谢您的查看。由于de.json文件显示错误,因此上面的en.json导入工作正常吗?如果没有任何效果,请将这些json文件移动到您的
src
文件夹中(如果它们不需要位于
public
中)。问题可能出在配置的exclude或include,或者一些相关的设置上,我不确定公共文件夹的配置是什么。我已经设置了我在关于typescript和json的汇总文档中找到的所有内容。或者我一定是监督了什么。我有两个不同的路径,文件位于受尊重的位置,但这两个路径以及package.json中都有错误。根据
@rollup/plugin json
文档,应该可以导入package.json。