open-index/open-npm huggingface dataset:
npm package: @shushu.pro/app-util
Description: 应用工具包
Author: sschen86@163.com
Latest version: 0.1.0

# @shushu.pro/app-util

应用工具包

## API

- copyText(text, callback?) 拷贝文本到剪切板，callback 为回调函数
- kvlog(key, value) 控制台输出美化后的文案
- download(url) 下载文件
- download({ name, url, targetBlank }) 下载文件
npm package: @shushu.pro/eslint-config-base
Description: eslint基础配置
Author: sschen86
Latest version: 0.1.0

# @shushu.pro/eslint-config-base

eslint 代码格式化规范实践插件

## 功能支持

- ✔ eslint
- ✔ prettier
- ✔ typescript
- ✔ react

## 使用说明

### 安装

`npm install @shushu.pro/eslint-config-base -D`

### 添加配置文件

#### `.eslintrc.js`

```js
/// https://zh-hans.eslint.org/
module.exports = {
  root: true,
  extends: ['@shushu.pro/base'],
  ignorePatterns: ['**/vendor/*.js'],
  rules: {
    // ...
  },
  globals: {
    varible: true,
  },
  settings: {
    'import/resolver': {
      // 别名配置
      // https://www.npmjs.com/package/eslint-import-resolver-alias
      alias: {
        // require('@shushu.pro/tsconfig').eslintAlias()
        map: {
          // ..
        },
        extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
      },
      // node: {
      //   extensions: ['.js', '.jsx', '.ts', '.tsx'],
      // },
    },
  },
  overrides: [
    {
      files: ['./build/**'],
      rules: {
        'global-require': 'off',
        'import/no-extraneous-dependencies': 'off',
        '@typescript-eslint/no-var-requires': 'off',
      },
    },
  ],
};
```

#### `.prettierrc.yaml`

```yaml
# https://prettier.io/docs/en/options.html
trailingComma: 'es5'
printWidth: 80
tabWidth: 2
semi: true
singleQuote: true
bracketSpacing: true
bracketSameLine: false
endOfLine: auto
arrowParens: 'always'
```

## 附录

- [ESLint 官方配置文档](https://zh-hans.eslint.org/)
npm package: @shushu.pro/eslint-config-react
Description: eslint react版配置
Author: sschen86
Latest version: 0.1.1

# @shushu.pro/eslint-config-react

eslint 代码格式化规范实践插件

## 功能支持

- ✔ eslint
- ✔ prettier
- ✔ typescript
- ✔ react

## 使用说明

### 安装

`npm install @shushu.pro/eslint-config-react -D`

### 添加配置文件

#### `.eslintrc.js`

```js
/// https://zh-hans.eslint.org/
module.exports = {
  root: true,
  extends: ['@shushu.pro/react'],
  ignorePatterns: ['**/vendor/*.js'],
  rules: {},
  globals: {
    varible: true,
  },
  settings: {
    'import/resolver': {
      // 别名配置
      // https://www.npmjs.com/package/eslint-import-resolver-alias
      alias: {
        // 假如是相对路径，则是从根目录开始计算
        // require('@shushu.pro/tsconfig').eslintAlias()
        map: [['@cat', './demo/Class.tsx']],
        extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
      },
      node: {
        extensions: ['.js', '.jsx', '.ts', '.tsx'],
      },
    },
  },
  overrides: [
    {
      files: ['./build/**'],
      rules: {
        'global-require': 'off',
        'import/no-extraneous-dependencies': 'off',
        '@typescript-eslint/no-var-requires': 'off',
      },
    },
  ],
};
```

#### `.prettierrc.yaml`

```yaml
# https://prettier.io/docs/en/options.html
trailingComma: 'es5'
printWidth: 80
tabWidth: 2
semi: true
singleQuote: true
bracketSpacing: true
bracketSameLine: false
endOfLine: auto
arrowParens: 'always'
```

## 附录

- [ESLint 官方配置文档](https://zh-hans.eslint.org/)
npm package: @shushu.pro/node-util
Author: sschen86@163.com
Latest version: 0.0.1

## node-util


### 简介
node环境下的通用工具类，帮助解决各种问题。


### 内容

#### net（网络类）

+ getPortUnused(port) 获取未使用的端口，从port开始

### 附录
npm package: @shushu.pro/rollup
Description: 打包工具，支持样式打包
Author: sschen86@163.com
Latest version: 0.2.0

# @shushu.pro/rollup

rollup 打包工具实践方案

## 功能支持

- ✔ typescript
- ✔ react
- ✔ 内置集成插件
- ✔ 支持打包环境配置
- ✔ 配置简单

## 使用说明

### 安装

`npm install @shushu.pro/rollup -D`

### 添加配置文件

```ts
import { config } from '../src';

export default config({
  preset: 'node',
  input: './src/index.ts',
  plugins: {
    // terser: false,
    replace: false,
  },
  external: true,
  output: { cjs: { exports: 'named', file: './dist/index.js' } },
});
```

## 附录

- [Rollup 官方配置文档](https://rollupjs.org/guide/zh/)
npm package: @shushu.pro/rollup-config
Description: rollup config
Author: sschen86@163.com
Latest version: 0.0.9

## @shushu.pro/rollup-config

rollup 配置文件最佳实践方案，满足快速生成打包配置，支持开发环境，生产环境的工具集合

内部封装了 typescript，babel，react，装饰器等各种插件配置，通过 preset 选择合适的打包要求，一键生成配置文件，同时也支持传递 plugins 来满足自定义的配置控制

## preset 的作用

preset 字段会一键生成预设的打包配置文件，取值包含以下几种

```txt
es   // 纯js环境，默认输出：esm
node  // 纯node环境，默认输出：cjs
server // node环境，有服务器相关的插件：默认输出：cjs，esm
client // 纯浏览器环境，默认输出：cjs，esm，umd

node-dev  支持es，node，server环境开发，输出：cjs
client-dev 支持es，node，client环境开发，输出：iife及启用html相关插件
```

## 安装依赖包

```bash
pnpm add concurrently nodemon rimraf rollup typescript -D
pnpm add tslib reflect-metadata
```

## 问题

> dev-node 命令第一次无输出，需要执行一遍后重新启动一下，因为第一次监听的文件还不存在，所以 nodemon 无法满足热更新
npm package: @shushu.pro/stylelint
Description: stylelint基础配置
Author: sschen86
Latest version: 0.1.0

# @shushu.pro/stylelint

stylelint 代码格式化规范实践插件

## 功能支持

- ✔ 自动格式化
- ✔ 自动属性排序

## 使用说明

### 安装

`npm install @shushu.pro/stylelint -D`

### 添加配置文件

#### `.stylelintrc.js`

```js
// @doc https://stylelint.io/user-guide/configure
module.exports = {
  extends: ["stylelint-config-standard", "stylelint-config-recess-order"],
  plugins: ["stylelint-order"],
  rules: {
    "selector-pseudo-class-no-unknown": [
      true,
      {
        ignorePseudoClasses: ["global"],
      },
    ],
    "selector-class-pattern": null,
  },
};
```

## 附录

- [stylelint 官方配置文档](https://stylelint.io/)