1 | # Oceanifier - 基于 oceanify 的命令行工具
|
2 |
|
3 | 使用 Oceanifier,前端工程师可以快速开发独立的前端模块。
|
4 |
|
5 |
|
6 | ## Usage - 用法
|
7 |
|
8 |
|
9 | ### Component Development - 单个模块开发
|
10 |
|
11 | 可以参考 central 中使用 oceanifier 开发的一些前端模块:
|
12 |
|
13 | 1. [yen][yen]
|
14 |
|
15 | Oceanifier 在启动的时候,会检查当前目录下是否有 package.json 文件,如果有,就会认为当前模块(也就是 package.name)为本地模块,在接到当前模块的请求时,会进入源码模式,将当前目录作为这个模块的源码目录。
|
16 |
|
17 | 比如,假设我在 [yen][yen] 项目目录中,那么所有到 `yen` 路径的访问,都会用当前目录中的文件作为内容返回:
|
18 |
|
19 | | 请求路径 | 实际文件 |
|
20 | |---------|---------|
|
21 | | /yen/index.js | /index.js |
|
22 | | /yen/test/test.yen.js | /test/test.yen.js |
|
23 |
|
24 | 这个模式在开发独立模块时非常方便,仍然以 yen 为例。
|
25 |
|
26 | ```bash
|
27 | ➜ yen git:(master) tree . -I node_modules
|
28 | .
|
29 | ├── History.md
|
30 | ├── Readme.md
|
31 | ├── easing.js
|
32 | ├── events.js
|
33 | ├── index.js
|
34 | ├── package.json
|
35 | └── test
|
36 | ├── runner.html
|
37 | ├── test.events.js
|
38 | └── test.yen.js
|
39 |
|
40 | 6 directories, 6 files
|
41 | ```
|
42 |
|
43 | 我们可以到 yen 的根目录运行 oceanify 服务:
|
44 |
|
45 | ```bash
|
46 | ➜ yen git:(master) oceanify serve # --port 5000
|
47 | ```
|
48 |
|
49 | 然后访问 <http://localhost:5000/test/runner.html> 即可执行 yen 的单元测试了。参考 yen/package.json 文件,我们还可以在 `scripts` 字段里写上:
|
50 |
|
51 | ```js
|
52 | "scripts": {
|
53 | "start": "oceanify serve",
|
54 | "test": "totoro --runner=http://`oceanify ip`:5000/test/runner.html"
|
55 | }
|
56 | ```
|
57 |
|
58 | 然后就可以用 `npm start` 运行服务,用 `npm test` 执行多浏览器测试了。
|
59 |
|
60 |
|
61 | ### Web Development - 日常前端开发
|
62 |
|
63 | // TODO
|
64 |
|
65 |
|
66 | ## Diff - 与 oceanify 的区别
|
67 |
|
68 |
|
69 | ### Oceanify
|
70 |
|
71 | 在使用 Node 开发的 Web 应用中,如果你采用的框架是 connect、express、或者 koa,那么你可以直接使用 [oceanify][oceanify] 提供的中间件:
|
72 |
|
73 | ```js
|
74 | // connect/express
|
75 | var oceanify = require('oceanify')
|
76 | app.use(oceanify())
|
77 |
|
78 | // koa
|
79 | var oceanify = require('oceanify/g')
|
80 | app.use(oceanify({ base: './components' }))
|
81 | ```
|
82 |
|
83 | 详见 [oceanify][oceanify] 的说明文档。
|
84 |
|
85 |
|
86 | ### Oceanifier
|
87 |
|
88 | 如前文所述,oceanify 只是一个中间件。如果你并非后端开发,只是想用 oceanify 的方式开发前端代码;如果你只是想以 CommonJS 形式开发一个可以通过 NPM 发布的前端或者前后端共享的模块,那用 Oceanifier 就对了。
|
89 |
|
90 |
|
91 | [oceanify]: https://github.com/erzu/oceanify
|
92 | [yen]: https://github.com/erzu/yen
|