# @wox/loader

> The loader module of wox

Latest version **1.0.16** (published 2019-05-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install @wox/loader
pnpm add @wox/loader
yarn add @wox/loader
bun add @wox/loader
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.16 |
| Published | 2019-05-20 |
| First published | 2018-10-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 19 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | evio |
| Keywords | loader |

## Links

- npm: https://www.npmjs.com/package/@wox/loader
- Repository: https://github.com/woxjs/loader
- Homepage: https://github.com/woxjs/loader#readme
- Issues: https://github.com/woxjs/loader/issues
- npm.io page: https://npm.io/package/@wox/loader

## Dependencies (7)

- [globby](https://npm.io/package/globby.md) ^8.0.2
- [ignore](https://npm.io/package/ignore.md) ^5.0.4
- [chokidar](https://npm.io/package/chokidar.md) ^2.0.4
- [fs-extra](https://npm.io/package/fs-extra.md) ^7.0.1
- [datawatcher](https://npm.io/package/datawatcher.md) ^1.0.0
- [@clusic/utils](https://npm.io/package/@clusic/utils.md) ^1.0.0
- [@evio/intersect](https://npm.io/package/@evio/intersect.md) ^1.0.4

## Recent versions

- 1.0.16 (latest) — 2019-05-20
- 2.0.5 — 2019-03-08
- 2.0.4 — 2019-03-07
- 2.0.3 — 2019-03-06
- 2.0.2 — 2019-02-19
- 2.0.1 — 2019-02-19
- 2.0.0 — 2019-02-19
- 1.0.15 — 2019-01-22
- 1.0.14 — 2019-01-21
- 1.0.13 — 2018-12-11
- 1.0.12 — 2018-11-26
- 1.0.11 — 2018-11-19
- 1.0.10 — 2018-11-06
- 1.0.9 — 2018-10-29
- 1.0.8 — 2018-10-29
- … 8 more at https://npm.io/package/@wox/loader/versions

## README

# @wox / loader

wox规范架构加载器。分`server`与`client`端的解析引擎。

## Install

```shell
npm i @wox/loader
```

## Usage

分`service`与`client`端的解析引擎。

```javascript
import Server from '@wox/loader/server';
import Client from '@wox/loader/client';
```

server端主要用于webpack的插件化，解决自动loader文件夹的策略。client主要对server端解析的数据进行规范解析。同时提供插件化能力。

## Server

创建webpack插件化对象，它有一个参数，布尔值，表示是否开启监听。

```javascript
import WoxWebpackRuntimePlugin from '@wox/loader/server';
const wox = new WoxWebpackRuntimePlugin(true);
wox.addDictionary(__dirname);
wox.loadCommonCase();
```

以后你可以将`wox`放置到webpack的plugins中。

```javascript
var webpack_options = {
  plugins: [
    wox,
  ]
}
```

### wox.loadCommonCompiler

注入一个通用的编译器

```javascript
wox.loadCommonCompiler(code, rule, deep);
// code: {string} 编译器标识名
// rule: {array} 路径解析规范  来源于 'ignore' 组件
// deep: {number} 解析深度 默认：2
```

### wox.addCompiler

添加一个编译器

```javascript
wox.addCompiler(compiler);
// compiler: {function} 编译器内容回调
```

### wox.setParser

设置一个基于编译器的一个解析器

```javascript
wox.setParser(code, callback);
// code: {string} 编译器标识名
// callback: {function} 处理的回调函数
// callback拥有2个参数(id, filePath) 返回值决定编译的最终内容
```

### wox.addDictionary

添加一个新的编译文件夹地址

```javascript
wox.addDictionary(__dirname__);
```

### wox.extract

抽取文件的内容到固定文件

```javascript
wox.extract();
```

### wox.exit

退出编译

```javascript
wox.exit();
```

## Plugin maker

在插件中如果存在`.wox.js`文件，那么它将被程序调用，用来处理插件的自定义server端行为。

---
_Source: https://npm.io/package/@wox/loader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
