我一直在尝试学习AWS的CDK,其中一次尝试涉及为基础设施和应用程序本身使用单独的存储库。
我的应用程序存储库是bog标准vite@latest install。没有更改。
我在部署时遇到问题,构建崩溃,代码构建日志显示src/App.tsx(2,23): error TS2307: Cannot find module './assets/react.svg' or its corresponding type declarations.
我试过调整tsconfig来包含一个@types文件夹,里面有svg的声明,但是根本不起作用,它只是给出了更多的打字错误。
我觉得我错过了一些很愚蠢的事情。
我的CDK渠道:
const pipeline = new CodePipeline(this, "CahmFrontendPipeline", {
pipelineName: "CahmFrontendPipeline",
synth: new ShellStep("Synth", {
input: CodePipelineSource.gitHub("myuser/myrepo", "master", {
authentication: cdk.SecretValue.secretsManager("MY_SECRET"),
}),
primaryOutputDirectory: "dist",
commands: [
"cd frontend",
"npm i",
"npm run build",
"npx cdk synth",
],
}),
});
这一切工作的权利,直到代码构建。我已经尝试改变图像,它使用,以及,但无济于事。有人有这个问题,也许可以指出我在正确的方向?
1条答案
按热度按时间e37o9pze1#
由于路径在dev和build(prod)之间的作用不同,事情变得混乱。我创建了a very simple example sandbox来帮助使用Vite starter应用程序的可视化内容。我也推荐阅读Static Asset Handling。Vite Build Options也非常有用,它允许您更改文件的输出位置。
理想情况下,您希望在组件的顶部使用
import reactSVG from './assets/react.svg'
,然后使用src={reactSVG)
在呈现中引用该src,开发和构建都会对此感到满意。或者您应该使用绝对路径,如
/assets/react.svg
,删除前面的.
。除了上面的沙盒,我还在每个图像的内联上写了详细的注解来帮助理解。