express-tsx
Advanced tools
Comparing version 4.2.6 to 4.2.7
# Change Log | ||
## [next] | ||
- 动态更新和 redux 结合达到动态更新界面 | ||
- 动态更新: 配合`redux`达到不损失状态得更新界面 | ||
## [4.2.x@beta] | ||
## [4.2.6] | ||
- 不再强制使用 `?callback=define` 获取初始化数据 , 转而提供一个 `?props` 路径以供获取数据 | ||
- 动态更新模块达成 . 需要通过 app.locals.hotreload = true 来开启 | ||
- 以上均在 `[example/index.js](./example/index.js)` 中有更新 | ||
- 以上均在 [`example/index.js`](./example/index.js) 中有更新 | ||
@@ -18,53 +18,2 @@ ## [4.1.0] | ||
- 重写了`Compile`, 移除了`chokidar`依赖 , 文件监听更加具有针对性了 | ||
- 修复了各种`linux`上的bug | ||
## [3.1.23] - 2017-6-25 | ||
### fixed | ||
- `express` 会合并路径 `//` --> `/` , 这样在某些情况会丢失路径信息 . | ||
这个导致在 `heroku` 上部署时找不到文件 , 因为`heroku`的根路径是`/`开头的 . | ||
典型的像这个 `youapp.herokuapp.com/express-tsx//app/**` 的源文件路径被解析为 `app/**`, 丢失了根路径导致文件找不到 | ||
采取的解决方法是自己解析原路径. | ||
## [3.1.20] - 2017-6-24 | ||
### update | ||
- 只在开发环境开启 `chokidar` 文件更新监听 | ||
## [3.1.19] - 2017-6-23 | ||
### fixed bug | ||
- `bug` : 标准化路径时如果没有盘符时会把整个路径都小写 | ||
## [3.1.18] - 2017-6-23 | ||
### fixed bug | ||
- `bug` : 获取文件依赖时:两个文件互相引用会出现内存溢出 | ||
- `typescript` 版本回退 | ||
## [3.1.17] - 2017-6-21 | ||
### change | ||
- `fileVersion` 现在使用 `hash` 值表示一致 | ||
- `typescript` 版本回退 | ||
## [3.1.15] - 2017-6-15 | ||
### fixed | ||
- relativePath 取的根路径 `req.app.path()` 有问题 , 更改为 新增变量`req.expressTsxRoot` | ||
## [3.1.1] - 2017-6-13 | ||
### add | ||
- 添加 `sourceMap` 支持 | ||
## [3.1.0] - 2017-6-11 | ||
### optimization | ||
- 添加 glomarous(css in js) 到默认配置中 , 现在可以尝试使用该组件进行模块式开发了 | ||
## [2.2.5] - 2017-5-7 | ||
### fixed | ||
- ssrWrap 使用了'/'定位到输出文件夹路径, 导致require不能正常解析模块路径 | ||
## [2.1.4] - 2017-4-27 | ||
### update | ||
- 导出 React 到全局声明 | ||
## [2.1.0] - 2017-4-23 | ||
### changed | ||
- 优化了 tsx 文件编译函数 , 加入了缓存 . | ||
- 修复了各种`linux`上的bug |
{ | ||
"name": "express-tsx", | ||
"version": "4.2.6", | ||
"version": "4.2.7", | ||
"description": "express view engine to render tsx file", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
# 介绍 | ||
tsx 文件的 express 的视图引擎 . | ||
<del>警告 : 不能用于生产环境 , 没有打包, 使用的是直接加载模块文件</del> | ||
<del>警告 : 不要用于生产环境 , 没有打包, 使用的是直接加载模块文件</del> | ||
@@ -11,2 +11,12 @@ # 安装 | ||
# 特点 | ||
- 有`sourcemap`支持, 可以轻松`debug`. 虽说默认是关闭的 | ||
- 支持热更新, 虽说是默认关闭 | ||
- `js`文件路径都带有`hash`值, 可以告别`ctrl`+`f5`了 | ||
- 编译器是完全独立的, 只依赖 typescript. | ||
- 编译器静态服务中间件只输出视图文件及其引用的文件, 不被引用的文件直接返回404, 所以你的文件是安全的 | ||
- 可定制程度高, 不行看 [`render.ts`](./src/render/render.ts) 就知道到底有多高了 | ||
- 虽然默认只支持`react`, 但可轻松扩展使其支持`Angular`. <del>并没有试过, 只是理论上应该可以的, 等人踩坑中</del> | ||
- 使用`requirejs`模块加载器, 配置模块的话,要使用`require('express-tsx').requirejsConfig(config)`函数, 可看示例 [example/requirejs.config.js](./example/requirejs.config.js) | ||
# 使用示例 | ||
@@ -49,23 +59,2 @@ [主文件](./example/index.js) | ||
# 示例运行 | ||
- 克隆本项目 | ||
```shell | ||
git clone https://github.com/shynome/express-tsx.git | ||
``` | ||
- 安装依赖 ; 进入示例目录 ; 运行 | ||
```shell | ||
npm install ; node example | ||
``` | ||
- 在浏览器中打开 [示例:http://127.0.0.1:9000/](http://127.0.0.1:9000/) | ||
一切正常的话会看到 : `hello world` | ||
# 实现流程 | ||
* 使用[`require('express-tsx').middleware`](./src/render/middleware.ts)中间件用来注入要使用的数据 | ||
* `express` 中指定要渲染的文件 , `app.use('/path',(req,res)=>res.render(file))` | ||
* 使用 `typescript` 将该文件及其引用的文件进行编译 | ||
* 调用用 `render` 函数 返回用来渲染界面的`html`文件 | ||
* 通过[`require('express-tsx').middleware`](./src/render/middleware.ts)返回编译成`es5`的`js`文件 | ||
* 浏览器通过 [`browser.int.ts`](./static/browser.init.ts) 渲染界面 | ||
*********** |
@@ -87,3 +87,2 @@ declare var requirejs:any | ||
let module:string[] = JSON.parse(data) | ||
this.updateModule(this.entry) | ||
module.forEach(this.updateModule) | ||
@@ -90,0 +89,0 @@ if(App.dev){ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
53520
792
58