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

willow-react-ui

v1.0.4

Published

reactUI组件库

Downloads

4

Readme

react-ui

介绍

react的UI组件库

软件架构

软件架构说明

安装教程

  1. npm install

使用说明

  1. npm link react-ui

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

样式管理合并

  1. 安装 npm install classnames

  2. 使用

var classNames = require('classnames');
classNames('foo', 'bar'); // => 'foo bar'

公司打造属于自己的npm仓库

  1. 从使用维度上划分【UI库工具库
  2. 脚手架

组件库的一些思考和总结

  1. 组件库从不同的维度进行划分 【业务型组件 功能性组件
  2. 从使用场景上划分,项目中使用,提供给第三方使用,项目中一般直接引入使用,提供给第三方使用,一般可以提供多种模块化规范的包
  3. 组件库可以帮提高组件的复用率,显著提升开发效率,可以降本增效
  4. 组件库可以代码统一管理,提高代码质量
  5. 组件库文档清晰,方便实用

包发布流程

  1. npm adduser
  2. npm publish

说明

发布包的时候会过滤一些包,可以配置.npmignore文件 如果您有.npmignore文件,则npm将使用.npmignore文件。 npm将完全忽略.gitignore文件 。 (许多开发人员错误地认为npm将同时使用.npmignore和.gitignore文件。不要犯同样的错误!)

package.json 中的一些配置

  1. sideEffects 配置false说明没有副作用,
["dist/*",
  "es/**/style/*",
  "lib/**/style/*",
  "*.less"]

表示这些代码下有副作用,在tree-shaking时不会移除 2. files 项目中包含的文件名 3. module ES Module默认的入口文件,优先查看该字段,买有查看main 4. main CommonJs 模块入口 5. typings TS的入口文件

组件库命令

  1. PascalCase 大写字母开头驼峰命名
  2. kebab-case 短横线命令

按需引入

问题:插件babel-plugin-import引入自己的 按需引入时会把PascalCase自动转为kebab-case,需要修改配置 webpack配置

  {
    plugins:[
      [
        "import",
        {
          // 导入一个插件
          libraryName: "willow-react-ui", // 暴露的库名
          libraryDirectory: "es",
          style: "css", // 直接将ants样式文件动态编译成行内样式插入,就不需要每次都导入
          camel2DashComponentName: false,
        },
        "willow-react-ui",
      ]
  ]}

在myApp项目中使用时,直接通过npm link,然后在myApp项目中,直接用component下的代码

  1. 需要配置babel-loader的
include: [/willow-react-ui.components/,
          /react-ui.components/]

注意包名和文件夹名称不一致,需要同时include 2. npm link 之后再项目中,会存在两个react https://github.com/facebook/react/issues/13991

方法1:需要配置

modules: [
        process.env.npm && path.resolve("node_modules"),
        "node_modules",
        paths.appNodeModules,
      ]
        .concat(modules.additionalModulePaths)
        .filter(Boolean),

注意这个启动时需要设置下环境变量cross-env npm=1 WDS_SOCKET_PORT=80 node scripts/start.js 方法2:删除包中依赖的react和react-dom 方法2:

 alias: {
      react: path.resolve('./node_modules/react')
    }

peerDependencies的作用(只会在npm 包中指定)

peerDependencies 里的包,会被别的包在使用当前包时用到,npm2会强制安装peerDependencies里的包,npm3会提示为安装让其手动安装 *** npm i --legacy-peer-deps** 可以绕过peerDependencies安装依赖 忽略依赖包里的react和react-dom

打包报错

  1. as any的ts语法无法转译
PluginError [SyntaxError]: D:\Desktop\antd\willow-ui\components\LazyImage\index.tsx: Unexpected token, expected "," (48:16)

    46 |     } else {
    47 |       if (!!imgRef && !!src) {
  > 48 |         (imgRef as any).loadSrc = () => {
       |                 ^
    49 |           setImgSrc(src);
    50 |           intersectionObserver?.unobserve(imgRef);
    51 |         };

解决方法:

npm install --save-dev @babel/preset-typescript
{
  "presets": ["@babel/preset-typescript"]
}

npm link xxx-ui之后报错

You may need an additional loader to handle the result of these loaders.
| import React from 'react';

解决方法:配置babel-loader,include: [paths.appSrc, /willow-utils.es/, /willow-ui.es/],