snowpack 快速开始

简介: snowpack 快速开始

先准备一个空目录来创建项目

mkdir my-first-snowpack
cd my-first-snowpack

初始化操作

npm init

安装依赖

npm install --save-dev snowpack

创建一个index.html文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Starter Snowpack App" />
    <title>Starter Snowpack App</title>
  </head>
  <body>
    <h1>Welcome to Snowpack!</h1>
  </body>
</html>

在 package.json 里面添加一个 start 命令来启动服务

  "scripts": {
   "start": "snowpack dev",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

然后运行服务

npm run start

在这里插入图片描述

直接在浏览器中使用浏览器原生的 JavaScript 模块功能。

// my-first-snowpack/hello-world.js
export function helloWorld() {
  console.log('Hello World!');
}
// my-first-snowpack/index.js
import { helloWorld } from './hello-world.js';

helloWorld();

在 html 里面引入 JS 文件

  <body>
    <h1>Welcome to Snowpack!</h1>
   <script type="module" src="/index.js"></script>
  </body>

修改文件页面会自动化刷新。除了使用自己写的模块,还可以使用 npm 模块

npm install --save canvas-confetti

在 index.js 添加下面代码

import confetti from 'canvas-confetti';
confetti.create(document.getElementById('canvas'), {
  resize: true,
  useWorker: true,
 })({ particleCount: 200, spread: 200 });

打开页面会出现一个动画效果。

snowpack 的一大特点是快 —— 全量构建快,增量构建也快。

因为不需要打包,所以它不需要像 webpack 那样构筑一个巨大的依赖图谱,并根据依赖关系进行各种合并、拆分计算。snowpack 的增量构建基本就是改动一个文件就处理这个文件即可,模块之间算是“松散”的耦合。

官方文档:https://www.snowpack.dev/tutorials/getting-started

典型的 Web 开发人员安装和管理他们的依赖关系是使用包管理器像 npm,yarn。这些 npm 软件包不能直接在浏览器中运行,因此在实际使用它们之前,需要额外的做处理,进行打包构建。

snowpack 完全跳过“ npm install”步骤,而是通过 ES Module 导入,按需获取相关的预构建的软件包代码。

// 之前是这样
import * as React from 'react';

// 之后是这样
import * as React from 'https://cdn.skypack.dev/react@17.0.1';

vite 的热度上升,与 vite 类似的 snowpack 的关注度也逐渐增加了。

相关文章
|
5月前
深入了解 Jetpack Compose 中的 Modifier
深入了解 Jetpack Compose 中的 Modifier
|
6月前
|
数据采集 API C#
网页解析高手:C#和HtmlAgilityPack教你下载视频
使用C#和HtmlAgilityPack解析小红书网页,下载其视频内容。文章涵盖了解析网页、获取视频链接、C#实现、HtmlAgilityPack简化解析、代理IP确保下载稳定及多线程提高下载效率。提供的代码示例展示了如何设置代理和多线程下载视频。实验结果显示,该方法能有效、高效地下载小红书视频。
123 5
网页解析高手:C#和HtmlAgilityPack教你下载视频
|
6月前
|
Python 容器
.pack(side=tk.LEFT
.pack(side=tk.LEFT
86 1
|
前端开发 JavaScript 开发者
前端工程化打包工具之Snowpack
Snowpack是一个非常流行的前端工程化打包工具,它可以帮助开发者快速构建具有可重用性和可维护性的前端项目,并且提供了完善的依赖管理和打包机制。
209 1
Figma|Generate color palette
Figma|Generate color palette
112 0
|
SQL 数据库 开发者
Jetpack初识
Google为了开发者更好的设计软件的代码架构以及写出高质量的代码,推出Jetpack组件,将许多好用的代码进行封装,总之使用Jetpack可以使得我们利用更少的时间开发出更高质量的软件
110 0
|
存储 SQL Java
Jetpack 系列之AppSearch
Jetpack 系列之AppSearch
974 1
Jetpack 系列之AppSearch
|
设计模式 JSON 编译器
Jetpack之Room的使用,结合Flow
Jetpack之Room的使用,结合Flow
241 0
Jetpack之Room的使用,结合Flow
|
API
一文带你学会使用Jetpack Compose Animations
1. Animation是由state驱动的 Compose的核心思想状态驱动UI刷新,这一思想同样体现在动画上。 Compose动画主要是通过不断计算最新的state值来刷新UI,这类似于传统的Va
250 0