Svelte Hacker News 克隆项目教程

Svelte Hacker News 克隆项目教程

hn.svelte.devHacker News clone built with Svelte and Sapper项目地址:https://gitcode.com/gh_mirrors/hn/hn.svelte.dev

1. 项目的目录结构及介绍

hn.svelte.dev/
├── src/
│   ├── routes/
│   │   ├── index.svelte
│   │   ├── about.svelte
│   ├── app.html
│   ├── client.js
│   ├── server.js
├── static/
│   ├── images/
│   ├── favicon.png
├── dockerignore
├── gcloudignore
├── gitignore
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── package-lock.json
├── package.json
├── rollup.config.js

目录结构介绍

  • src/: 包含项目的源代码。
    • routes/: 包含应用的路由组件。
      • index.svelte: 主页组件。
      • about.svelte: 关于页面组件。
    • app.html: 应用的模板文件。
    • client.js: 客户端入口文件。
    • server.js: 服务器入口文件。
  • static/: 包含静态资源文件。
    • images/: 图片文件夹。
    • favicon.png: 网站图标。
  • dockerignore: Docker 忽略文件。
  • gcloudignore: Google Cloud 忽略文件。
  • gitignore: Git 忽略文件。
  • Dockerfile: Docker 配置文件。
  • LICENSE: 项目许可证。
  • Makefile: Makefile 配置文件。
  • README.md: 项目说明文档。
  • package-lock.json: npm 锁定文件。
  • package.json: 项目依赖和脚本配置文件。
  • rollup.config.js: Rollup 配置文件。

2. 项目的启动文件介绍

client.js

import './global.css';
import App from './App.svelte';

const app = new App({
  target: document.body,
  props: {
    name: 'world'
  }
});

export default app;
  • client.js: 客户端入口文件,负责初始化 Svelte 应用并挂载到 DOM 中。

server.js

import sirv from 'sirv';
import polka from 'polka';
import compression from 'compression';
import * as sapper from '@sapper/server';

const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';

polka()
  .use(
    compression({ threshold: 0 }),
    sirv('static', { dev }),
    sapper.middleware()
  )
  .listen(PORT, err => {
    if (err) console.log('error', err);
  });
  • server.js: 服务器入口文件,负责配置服务器和中间件,启动服务器。

3. 项目的配置文件介绍

package.json

{
  "name": "hn.svelte.dev",
  "version": "1.0.0",
  "scripts": {
    "build": "sapper build --legacy",
    "dev": "sapper dev",
    "export": "sapper export --legacy",
    "start": "node __sapper__/build"
  },
  "dependencies": {
    "compression": "^1.7.4",
    "polka": "^0.5.2",
    "sirv": "^1.0.0"
  },
  "devDependencies": {
    "sapper": "^0.28.0",
    "svelte": "^3.29.0"
  }
}
  • package.json: 项目依赖和脚本配置文件,包含项目的名称、版本、脚本命令和依赖包。

rollup.config.js

import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';

const production = !process.env.ROLLUP_WATCH

hn.svelte.devHacker News clone built with Svelte and Sapper项目地址:https://gitcode.com/gh_mirrors/hn/hn.svelte.dev

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦俐冶Kirby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值