snowpack 入门

什么是 snowpack

Snowpack是用于Web应用程序开发的现代轻量级工具链,可以对标 webpack, 像 webpack 这样的工具每次更新都会重新构建部分或全部代码,这就是他的不足之处了

Snowpack 每当更改文件时,都不会重建多个文件。没有捆绑可言,只有几毫秒的单文件重建,然后通过HMR在浏览器中进行即时更新

snowpack 的主要优点及支持

  • 在50毫秒或更短时间内启动的开发环境。
  • 更改会立即反映在浏览器中。
  • 对TypeScript,JSX,CSS模块等的现成支持。

支持 react 和 Vue

工具支持
Babel,TypeScript,PostCSS,Sass

唯一的要求是在开发过程中,您必须使用现代的浏览器。 Firefox,Chrome或Edge的任何最新版本都可以。这是支持现代无捆绑ESM导入所必需的,该导入将您的应用程序加载到浏览器中。

关键点

<body>
<script type='module'>
import * as React from 'react';
console.log(React);
</script>
</body>

snowpack 主要是利用了这个 script 的特性 type='module',关于这个属性,我之前在一篇文章中提到过:
https://www.cnblogs.com/Grewer/p/9518146.html

下载 snowpack

# using npm
npm install --save-dev snowpack
# using yarn
yarn add --dev snowpack

snowpack 这个库是用来创建项目的,如果不想一直让他存在电脑里面,可以使用 npx 来创建

npx create-snowpack-app new-dir --template [SELECT FROM BELOW] [--use-yarn]

这是模板创建列表:

这一选择其中一个进行初始化,而我这边是选择 @snowpack/app-template-react-typescript

npx create-snowpack-app snowpacklearn --template @snowpack/app-template-react-typescript

创建完毕后目录是这个样子的:

├─.prettierrc
├─LICENSE
├─README.md
├─babel.config.json
├─jest.config.js
├─jest.setup.js
├─package-lock.json
├─package.json
├─result.txt
├─snowpack.config.json
├─tsconfig.json
├─types
| ├─import.d.ts
| └static.d.ts
├─src
| ├─App.css
| ├─App.test.tsx
| ├─App.tsx
| ├─index.css
| ├─index.tsx
| └logo.svg
├─public
| ├─favicon.ico
| ├─index.html
| └robots.txt

目录说明

通过 npm run start 启动项目, 自动打开浏览器 localhost:8080

public 文件下用来存放公共文件以及模板, 可以直接通过路径访问,如 public 文件下的 favicon.ico 开启可以通过 http://localhost:8080/favicon.ico 来打开

src 文件 放置组件和页面还有样式等 web 内容, src 里的静态内容通过编译以后可以通过 _dist_ 来访问,如 http://localhost:8080/_dist_/logo.svg

现在这个库是通过脚手架直接生成的, 支持 tsx ,但是还是很基础,相对于工业化的脚手架还是有一些差距,如 umi

关于 css 的问题

之前我看一些 snowpack 的介绍都是说有不能用 less 等缺点
有一些解决方案, 使用 css in js ,可以解决大部分问题
官网介绍了一个库 https://github.com/lukejacksonn/csz 也是 css in js
使用起来可以照顾大多数情况

使用 css modules

可以在文件命名上添加 module 来分别, 如 style.module.css

总结

时间点 (2020.6.29)
snowpack 基本的框架已经成型了,但是还是不够成熟,而且大框架,他们都有成熟的脚手架,如果官方愿意迁移过来还是很不错的
总的来说写一些练手的小项目是没什么问题,如果是复杂,多变的还是需要 webpack 等成熟方案的支持

最后附上 snowpack 的官方网站,他里面的说明是更加详尽一点 https://www.snowpack.dev/#overview

posted @   Grewer  阅读(2061)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示