我最近开始尝试使用 svelte,并从下载hello world 示例开始。
然后我就开始根据我的需要改变它。
它已经在 public 文件夹中设置了一个 index.html 文件(它被设置为编译到 public 文件夹而不是 dist)。Svelte / rollup 不会生成 index.html 文件,它纯粹是为了编译和捆绑你的 JS / svelte 组件。
提供的 index.html 文件只是基本的:
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<meta name='viewport' content='width=device-width'>
<title>Svelte app</title>
<link rel='icon' type='image/png' href='favicon.png'>
<link rel='stylesheet' href='global.css'>
<link rel='stylesheet' href='bundle.css'>
</head>
<body>
<script src='bundle.js'></script>
</body>
</html>
main.js 看起来像这样:
import App from './App.svelte';
var app = new App({
target: document.body
});
export default app;
如果您有兴趣 ,这是我的第一个苗条应用程序的链接[source],[build] 。
就 SEO 而言,多年来我一直听说 google 现在可以抓取 JS,但我并不相信。一个 JS 驱动的 SPA 永远不会像标准的 html 页面那样拥有 SEO 汁液。
话虽如此,我目前正在开发一个我想要好的 SEO 的 SPA。交互部分只是页面的一小部分,所以我将其余部分(文本、图像和其他内容)直接添加到 index.html 中,这样搜索引擎在抓取它时应该没有问题。我只是将 main.js 更改为将应用程序注入到一个 div(具有应用程序的 ID)而不是正文中。
所以 main.js 看起来像这样:
import App from './App.svelte';
var app = new App({
target: document.getElementById('app'),
});
export default app;
我还没有对 Sapper 做过任何事情,所以我不能对此发表评论。
我希望我的回答能在某种程度上有所帮助。