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 的关注度也逐渐增加了。

相关文章
|
存储 Python
python字典中删除键值的方法
python字典中删除键值的方法
360 0
|
前端开发 JavaScript 开发工具
使用jsDelivr和GitHub,上传本地静态资源到免费CDN
本文介绍了一种将本地图片和静态资源(如 js、css、文档等)上传至免费CDN的方法,便于随时调用。具体步骤包括:在GitHub创建仓库`resources`存放资源;通过上传或Git命令同步文件;在仓库中创建新版本并发布。之后即可通过指定格式的URL访问这些CDN资源。此方法简单高效,适合开发者快速部署和共享静态内容。
929 5
使用jsDelivr和GitHub,上传本地静态资源到免费CDN
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
466 1
|
11月前
|
存储 安全 开发者
探索操作系统的心脏:内核与用户空间的交互
在数字世界的复杂迷宫中,操作系统扮演着至关重要的角色。它不仅仅是软件与硬件之间的桥梁,更是维系计算生态平衡的关键。本文将深入探讨操作系统的核心组件—内核和用户空间,以及它们如何协同工作来支持现代计算需求。通过浅显的语言和生动的比喻,我们将揭开操作系统神秘的面纱,了解它是如何影响我们日常生活的每一个方面。无论你是科技爱好者还是普通用户,这篇文章都将带你领略操作系统的奇妙世界,让你对电脑内部的运作有一个全新的认识。
106 2
|
人工智能 自然语言处理 测试技术
通义灵码多维度体验分享
一文带你多维度了解通义灵码
460 4
|
运维 数据可视化 搜索推荐
零代码、低代码、全代码的区别
如果您留意过这两年IT行业的新词汇,一定会注意到零代码、低代码这几个新事物。此前,阿里云智能总裁、达摩院院长张建锋在会上表示:未来的软件开发一定是碎片化的,2021年的潮流就是低代码开发,低代码开发将是2021年的行业关键词。从这句话中,我们不难发现,随着低代码、无代码在2021开年的火爆程度,俨然有逐渐成为新风口的趋势。对此,为了帮助大家更快速的了解低代码、无代码、全代码,我特地为大家整理了他们之间的区别,供大家参考学习,希望对大家有所帮助!
4069 1
零代码、低代码、全代码的区别
|
11月前
|
存储 Swift
Swift 继承
10月更文挑战第30天
78 0
|
数据可视化 JavaScript Android开发
低代码引擎 LowCodeEngine 茁壮成长的一年
低代码引擎 LowCodeEngine 茁壮成长的一年
2122 0
|
弹性计算 网络协议 文件存储
将Windows系统机器加入AD域
一台Windows服务器需要加入到Active Directory域后才能通过AD域服务来管理。本文介绍了如何将一台Windows服务器加入已有的AD域。
5149 0
将Windows系统机器加入AD域
|
消息中间件 关系型数据库 MySQL
Kafka Connect :构建强大分布式数据集成方案
Kafka Connect 是 Apache Kafka 生态系统中的关键组件,专为构建可靠、高效的分布式数据集成解决方案而设计。本文将深入探讨 Kafka Connect 的核心架构、使用方法以及如何通过丰富的示例代码解决实际的数据集成挑战。