mm_statics 1.8.9 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -31
- package/index.js +30 -728
- package/lib/manager.js +290 -0
- package/lib/static.js +239 -0
- package/lib/static_handle.js +823 -0
- package/package.json +25 -14
- /package/{vue_compiler.js → lib/vue_compiler.js} +0 -0
package/README.md
CHANGED
|
@@ -24,12 +24,12 @@ npm install mm_statics
|
|
|
24
24
|
|
|
25
25
|
```javascript
|
|
26
26
|
const Koa = require('koa');
|
|
27
|
-
const
|
|
27
|
+
const { statics } = require('mm_statics');
|
|
28
28
|
|
|
29
29
|
const app = new Koa();
|
|
30
30
|
|
|
31
|
-
//
|
|
32
|
-
app.use(static
|
|
31
|
+
// 使用默认配置(root 为 ./static)
|
|
32
|
+
app.use(statics({ root: './static' }));
|
|
33
33
|
|
|
34
34
|
app.listen(3000, () => {
|
|
35
35
|
console.log('服务器运行在 http://localhost:3000');
|
|
@@ -40,12 +40,12 @@ app.listen(3000, () => {
|
|
|
40
40
|
|
|
41
41
|
```javascript
|
|
42
42
|
const Koa = require('koa');
|
|
43
|
-
const {
|
|
43
|
+
const { statics } = require('mm_statics');
|
|
44
44
|
|
|
45
45
|
const app = new Koa();
|
|
46
46
|
|
|
47
47
|
// 自定义配置
|
|
48
|
-
app.use(
|
|
48
|
+
app.use(statics({
|
|
49
49
|
root: './public', // 静态文件根目录
|
|
50
50
|
path: '/src', // 需要转换的文件路径前缀
|
|
51
51
|
files: ['.js', '.vue'], // 需要转换的文件类型
|
|
@@ -64,19 +64,21 @@ app.listen(3000);
|
|
|
64
64
|
|
|
65
65
|
| 配置项 | 类型 | 默认值 | 描述 |
|
|
66
66
|
|--------|------|--------|------|
|
|
67
|
-
| `root` | string | `'
|
|
68
|
-
| `path` | string | `'
|
|
69
|
-
| `files` | array | `['.js', '.vue']` | 需要转换的文件类型 |
|
|
67
|
+
| `root` | string | `''` | 静态文件根目录,为空时由 `dir` 推导,处理器兜底为 `./static` |
|
|
68
|
+
| `path` | string | `''` | 路由根路径,为空时自动生成 `/${app}/` |
|
|
69
|
+
| `files` | array | `['.js', '.vue', '.html']` | 需要转换的文件类型 |
|
|
70
70
|
| `convert_amd` | boolean | `true` | 是否启用ES6到AMD转换 |
|
|
71
71
|
| `compile_vue` | boolean | `true` | 是否编译Vue单文件组件 |
|
|
72
|
-
| `
|
|
72
|
+
| `compile_md` | boolean | `true` | 是否将Markdown转换为HTML |
|
|
73
|
+
| `max_age` | number | `600` | 缓存时间(秒) |
|
|
73
74
|
| `immutable` | boolean | `true` | 是否启用不可变缓存 |
|
|
75
|
+
| `cache` | boolean | `true` | 是否启用服务端缓存 |
|
|
74
76
|
| `hidden` | boolean | `false` | 是否支持隐藏文件 |
|
|
75
77
|
| `index` | string | `'index.html'` | 默认索引文件 |
|
|
76
|
-
| `format` | boolean | `
|
|
78
|
+
| `format` | boolean | `true` | 是否格式化转换后的代码 |
|
|
77
79
|
| `extensions` | boolean | `false` | 是否自动添加扩展名 |
|
|
78
|
-
| `brotli` | boolean | `
|
|
79
|
-
| `gzip` | boolean | `
|
|
80
|
+
| `brotli` | boolean | `true` | 是否支持brotli压缩 |
|
|
81
|
+
| `gzip` | boolean | `true` | 是否支持gzip压缩 |
|
|
80
82
|
|
|
81
83
|
## 使用场景
|
|
82
84
|
|
|
@@ -84,7 +86,7 @@ app.listen(3000);
|
|
|
84
86
|
|
|
85
87
|
```javascript
|
|
86
88
|
// 禁用AMD转换,仅提供静态文件服务
|
|
87
|
-
app.use(
|
|
89
|
+
app.use(statics({
|
|
88
90
|
convert_amd: false,
|
|
89
91
|
compile_vue: false,
|
|
90
92
|
root: './public'
|
|
@@ -95,7 +97,7 @@ app.use(static({
|
|
|
95
97
|
|
|
96
98
|
```javascript
|
|
97
99
|
// 启用AMD转换,自动转换ES6模块
|
|
98
|
-
app.use(
|
|
100
|
+
app.use(statics({
|
|
99
101
|
convert_amd: true,
|
|
100
102
|
compile_vue: false,
|
|
101
103
|
root: './src',
|
|
@@ -108,7 +110,7 @@ app.use(static({
|
|
|
108
110
|
|
|
109
111
|
```javascript
|
|
110
112
|
// 启用AMD转换,将Vue组件转换为AMD格式
|
|
111
|
-
app.use(
|
|
113
|
+
app.use(statics({
|
|
112
114
|
convert_amd: true,
|
|
113
115
|
compile_vue: true,
|
|
114
116
|
root: './components',
|
|
@@ -121,7 +123,7 @@ app.use(static({
|
|
|
121
123
|
|
|
122
124
|
```javascript
|
|
123
125
|
// 禁用AMD转换,但启用Vue编译,生成可直接使用的组件
|
|
124
|
-
app.use(
|
|
126
|
+
app.use(statics({
|
|
125
127
|
convert_amd: false,
|
|
126
128
|
compile_vue: true,
|
|
127
129
|
root: './components',
|
|
@@ -216,15 +218,12 @@ new Static(config)
|
|
|
216
218
|
|
|
217
219
|
#### 方法
|
|
218
220
|
|
|
219
|
-
- `
|
|
220
|
-
- `main(ctx,
|
|
221
|
-
- `run(ctx, next)` -
|
|
222
|
-
- `
|
|
223
|
-
- `
|
|
224
|
-
- `
|
|
225
|
-
- `_handleVueFile(vue_content)` - 处理Vue文件转换
|
|
226
|
-
- `_convertToDirectVueComponent(script_content, vue_content)` - Vue文件直接转换
|
|
227
|
-
- `_send(ctx, path)` - 发送静态文件
|
|
221
|
+
- `main(ctx, next)` - 主处理逻辑,作为中间件使用(路径取自 `ctx.path`)
|
|
222
|
+
- `main(ctx, file_path)` - 直接发送指定文件
|
|
223
|
+
- `run(ctx, next)` - 中间件方式处理静态文件
|
|
224
|
+
- `send(ctx, file_path, config)` - 直接发送指定文件
|
|
225
|
+
- `_delCache(url)` - 删除指定请求路径的服务端缓存
|
|
226
|
+
- `init()` / `start()` / `stop()` - 生命周期方法(继承自 `mm_mod`)
|
|
228
227
|
|
|
229
228
|
## 缓存策略
|
|
230
229
|
|
|
@@ -269,14 +268,14 @@ npm test
|
|
|
269
268
|
npx eslint index.js
|
|
270
269
|
```
|
|
271
270
|
|
|
272
|
-
###
|
|
271
|
+
### 测试与示例
|
|
273
272
|
|
|
274
273
|
```bash
|
|
275
|
-
#
|
|
276
|
-
|
|
274
|
+
# 运行自动化测试
|
|
275
|
+
npm test
|
|
277
276
|
|
|
278
|
-
#
|
|
279
|
-
node
|
|
277
|
+
# 运行使用示例
|
|
278
|
+
node example/index.js
|
|
280
279
|
```
|
|
281
280
|
|
|
282
281
|
### 贡献代码
|
|
@@ -292,7 +291,8 @@ node debug_vue_conversion.js
|
|
|
292
291
|
- **@vue/compiler-sfc**: Vue单文件组件解析器
|
|
293
292
|
- **mm_es6_to_amd**: ES6到AMD转换器
|
|
294
293
|
- **mm_cache**: 缓存模块
|
|
295
|
-
- **
|
|
294
|
+
- **mm_corejs**: 核心管理基类
|
|
295
|
+
- **mm_helper**: 静态处理器依赖的字符串/路径原型扩展
|
|
296
296
|
|
|
297
297
|
## 许可证
|
|
298
298
|
|