2.0重构

master
yutent 2023-11-01 16:03:07 +08:00
parent 95f088475e
commit a0dd900a39
3 changed files with 35 additions and 23 deletions

View File

@ -1,22 +1,25 @@
![module info](https://nodei.co/npm/@gm5/views.png?downloads=true&downloadRank=true&stars=true)
![downloads](https://img.shields.io/npm/dt/@gm5/views.svg)
![version](https://img.shields.io/npm/v/@gm5/views.svg)
# @gm5/views
> @gm5框架的模板引擎拓展包.
## 安装
> 一般不需要单独安装, 该模块包含在`@gm5/core`的依赖里。
```bash
npm install @gm5/views
npm i @gm5/views
```
## 使用
```js
import Views from '@gm5/views'
import { ViewsModule } from '@gm5/views'
app.install(Views)
app.install(ViewsModule)
```

View File

@ -6,23 +6,27 @@
import Smarty from 'smartyx'
export function createViewsPlugin() {
return {
name: 'views',
install() {
let eng = new Smarty()
let conf = this.get('views')
const DEFAULT_CONFIG = {
dir: '',
ext: '.htm'
}
if (conf.dir) {
eng.config('path', conf.dir)
if (conf.ext) {
eng.config('ext', conf.ext)
}
return eng
} else {
throw new Error('views.dir is empty')
}
export const ViewsModule = {
name: 'views',
install(conf = {}) {
if (!conf.dir) {
throw new Error('Please make sure to set the `dir` field')
}
let engine = new Smarty()
let views = Object.assign({}, DEFAULT_CONFIG, conf)
this.set({ views })
engine.config('path', views.dir)
if (views.ext) {
engine.config('ext', views.ext)
}
return engine
}
}

View File

@ -1,12 +1,17 @@
{
"name": "@gm5/views",
"version": "1.0.0",
"version": "2.0.0",
"description": "@gm5框架的模板引擎拓展包",
"type": "module",
"main": "index.js",
"author": "yutent <yutent.io@gmail.com>",
"repository": "https://github.com/bytedo/gmf.views.git",
"keywords": ["fivejs", "views", "smarty"],
"repository": "https://git.wkit.fun/gm5/views.git",
"keywords": [
"fivejs",
"gm5",
"views",
"smarty"
],
"dependencies": {
"smartyx": "^2.1.0"
},