open-index/open-npm huggingface dataset:
npm package: @polyv/eslint-config
Description: Standard ESLint configuration for Polyv projects.
Latest version: 0.8.0

# 保利威前端工程 ESLint 通用配置

## 安装和使用

确保 Node.js 版本符合 **^20.10.0**（未测试其他版本的可用性），运行 npm 命令安装：

```bash
npm install @polyv/eslint-config --save-dev
```

在项目中创建 `.eslintrc.js`（一般在根目录下创建），根据工程的开发语言和框架配置 `extends` 字段：

```javascript
/* eslint-env node */

// 纯 JavaScript 工程的配置
module.exports = {
  root: true,
  extends: [
    './node_modules/@polyv/eslint-config/lib/for-js'
  ]
};
```

```javascript
/* eslint-env node */

// 纯 TypeScript 工程的配置
module.exports = {
  root: true,
  extends: [
    './node_modules/@polyv/eslint-config/lib/for-js',
    './node_modules/@polyv/eslint-config/lib/for-ts'
  ]
};
```

```javascript
/* eslint-env node */

// Vue.js 2.x 工程（JavaScript）的配置
module.exports = {
  root: true,
  extends: [
    './node_modules/@polyv/eslint-config/lib/for-vue2-js'
  ]
};
```

## 注意点

### 严格模式

部分规则在严格模式下（环境变量 `STRICT_LINT` 不为 `false` 时），告警级别为错误，其他情况为警告。这些规则包括：

- sonarjs/no-nested-template-literals
- @typescript-eslint/naming-convention
- vue/custom-event-name-casing
- vue/no-mutating-props
- vue/multi-word-component-names
- vue/attribute-hyphenation
- vue/v-on-event-hyphenation

### 生产环境构建的差异

部分规则在环境变量 `NODE_ENV` 为 `production` 时，告警级别为错误，其他情况下为警告。这些规则包括：

- no-debugger
- no-unused-vars
- no-constant-condition
- no-empty
- sonarjs/no-duplicate-string
- @typescript-eslint/no-unused-vars
- @typescript-eslint/explicit-module-boundary-types
npm package: @polyv/utils
Description: Utility functions of Polyv frontend development.
Author: Polyv frontend team
Latest version: 2.19.0

# POLYV 工具函数库

本项目提供 Web 前端常用的底层工具函数库，主要用于 POLYV 各类 Web 产品。

## 安装

```
npm install @polyv/utils
```

NPM 包同时提供了 ES 模块以及 CommonJS 模块，分别位于 `es` 和 `cjs` 两个文件夹。它们使用上的区别和优缺点在于：

| 模块类型 | Tree shaking | Babel 编译 |
| --- | --- | --- |
| ES 模块 | 有效，只有用到的代码会被打包 | 需要 |
| CommonJS 模块 | 无效，依赖的文件会被整个打包 | 不需要 |


## 使用

### 在基于 Vue.js 框架的项目中使用

以 Vue CLI 3.x 创建的项目为例，编辑 vue.config.js 增加相关配置：

``` javascript
module.exports = {
  // 省略其他配置

  configureWebpack: {
    resolve: {
      alias: {
        // 配置别名缩短引用路径
        '@utils': path.resolve(__dirname, './node_modules/@polyv/utils/es')
      }
    }
  },

  // ES 模块需要 Babel 转译
  transpileDependencies: [
    '@polyv/utils'
  ]
};
```

在项目代码中引入：

``` javascript
import { cutStr } from '@utils/string';
import Countdown from '@utils/countdown';
```

### 在基于 Nuxt.js 框架的项目中使用

以 create-nuxt-app 创建的项目为例，编辑 nuxt.config.js 增加相关配置：

``` javascript
module.exports = {
  // 省略其他配置

  build: {
    // ES 模块需要 Babel 转译
    transpile: [
      '@polyv/utils'
    ]
  },

  extend(config, ctx) {
    // 配置别名缩短引用路径
    config.resolve.alias['@utils'] = path.resolve(
      __dirname, './node_modules/@polyv/utils/es'
    );
  }
};
```

在项目代码中引入：

``` javascript
import { cutStr } from '@utils/string';
import { Countdown } from '@utils/countdown';
```

## 兼容性
- IE >= 9
- iOS >= 9 (未测试更低版本)
- Android >= 5 (未测试更低版本)

## 其他
- [API 文档（1.x）](https://polyv.github.io/fed-common-utils/1.x/index.html)
- [API 文档（2.x）](https://polyv.github.io/fed-common-utils/2.x/index.html)

## 2.0.0 版本的变更

2.0.0 与 1.x 相比有较大的变更，如需升级，请参阅下方变更说明：

- 模块变更：
  - 原 lang 模块已移除，可以使用 [@just4/util](https://www.npmjs.com/package/@just4/util) 或 [lodash-es](https://www.npmjs.com/package/lodash-es) 代替。
  - 原 browser 模块已移除，可以使用 [@just4/ua-info](https://www.npmjs.com/package/@just4/ua-info) 代替。
  - 原 cookie 模块已移除，可以使用 [@just4/cookie](https://www.npmjs.com/package/@just4/cookie) 代替。
  - 原 polling 模块已移除，可以使用 [@just4/polling](https://www.npmjs.com/package/@just4/polling) 代替。
  - 原 storage 模块已移除，可以使用 [@just4/storage](https://www.npmjs.com/package/@just4/storage) 代替。
- 部分 API 的变更：
  - boolean 模块的 `ynToBool` 支持指定默认值。
  - countdown 模块的 `Countdown` 类增加 `pause` 方法。
  - string 模块的 `cutStr`、`strLen` 两个方法的选项，不再支持 `mode` 属性。
  - string 模块新增 `uuidV4` 方法。
  - validate 模块的 `isPhoneNO` 方法改名为 `isChsPhoneNO`。
- CommonJS 模块的路径是 `cjs`（原来是 dist），ES 模块的路径是 `es`（原来是 src）。