npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

narcissus-design-vue

v1.0.2

Published

该项目是一个基于monorepo架构的Vue3+TS+Scss的Vue3组件库

Downloads

193

Readme

narcissus-design-vue

项目介绍及其架构介绍

该项目是一个基于monorepo架构的Vue3+TS+Scss的Vue3组件库

根目录下有五个文件夹 cli: 命令行相关模块 docs: 组件库文档模块 examples: 开发测试模块 packages: 组件核心库 lib: 用于组件库打包最后上传到npm

CSS架构,主要分为四层

base层: 整个CSS结构最基础的层级, 包括基础样式和定制基础样式 tools层: 提供通用工具函数 acss层: 定义原子样式类, 比如flex, margin...等样式基础类 components: 实现各个组件的样式,命名方式采用BEM方式

BEM介绍

核心思想: 通过组件名的唯一性来说保证选择器的唯一性,从而保证样式不会污染到组件外 简单了解: 命名层级与命名规定 命名层次, BEM规定将所有的组件分为三个层级: 1.Block: 代表页面中独立可复用的底层组件; 2.Element: Block 内部的组成元素,通常用于定义块的内部结构和样式; 3.Modifier: 用于改变Block/Element的外观和行为; 命名规定,BEM三层架构之下, 我们用命名规范来体现这种层级关系 所有命名通常都用小写字母,单词之间用 单个短线(-) 分隔,不用大驼峰、小驼峰等方式。 Element 名以所属的 Block 名称为前缀,用 双下划线(__) 分隔; Modifier 名以其修饰的 Block 或 Elment 名称为前缀,用 双连字符(--) 分隔。

packages模块介绍

packages下面用于放置narcissus-design-vue组件库聚合文件,和一系列组件,scss用于存放组件样式,utils用于封装全局的通用组件函数

example模块介绍

examples这个文件是一个经典的用vite构建的vue3+ts项目,定义为组件库测试站点 在开发过程中,通过workspace特性去更新组件库测试

docs模块介绍

docs模块是一个用于vitepress构建的组件库文档用于展示组件功能给其他开发人员使用,定义组件使用方法,样式,prop,插槽,API等等 目录架构: .vitepress: 用于存放vitepress配置文件 public: 公共资源目录 components: 组件文档描述 demos: 文档中的demo guide: 组件库中的其他文件说明

cli模块介绍

cli用于自动化我们开发一个组件的流程: 通过一行命令实现一个组件basic的建设

如何开发组件

基本命令介绍 命令中 -C 实现了根目录可以完成各种操作 从构建组件到测试到写文档到发布到npm的操作流程

如何利用cli脚本构建一个组件

pnpm run gen:component 这一行命令会通过一个命令构建一个完整的组件,只需要提供组件名,组件中文名,组件类型,即可完成组件注册和文档搭建

如何开发?

在生成的packages的组件下面进行组件开发 以Button举个例子 packages/src/Button下面的文件挨个分析 package.json下面的name @narcissus-design-vue/@Buttton就代表这个组件的名字 Button/index.ts 入口文件, 用于提供利用vue特性提供install方法注入 Button/Button.vue就是组件的核心模块 Button/types.ts用于定义各种prop,其他的组件需要的类型,prop类型等等

如何测试?

测试分为三种,一种是开发阶段测试,一种是本地部署测试,还有上传到npm测试 当然开发阶段的测试是pre-important的,一定是最前置的,优先级要最高 必须要做测试

如何开发阶段测试?

只需要在exaples这个同步测试站点下面进行组件库包的同步更新即可 如何启动测试站点 pnpm run dev:dev 进行相关组件的使用即可

如何发包

本地发包 首先登录verdaccio进行登录 pnpm run start:verdaccio pnpm run build:lib 首先进行打包lib pnpm run publish:local利用verdaccio,进行本地部署发包 利用本地verdaccio进行测试

发包到npm 同样需要build pnpm run build:lib pnpm run publish:serve