>[danger] **棄用提醒:**
> *由于看云對于免費用戶的限制愈發嚴苛,本文檔已經遷移至語雀。本文檔將不做維護。*
> **語雀地址**:[https://www.yuque.com/a632079/nodebb](https://www.yuque.com/a632079/nodebb)
*****
# 準備
NodeBB 需要部署(注: `Rebuild` , 為了更符合習慣所以翻譯為此) 資源文件才能使對頁面的更改生效。部署過程可以通過調用: `./nodebb build` 來實現。 由于默認會部署所有的資源文件, 所以該過程可能會十分漫長 (一般 30s)。
## 按需部署資源
出于快速開發的目的, 我們通常只按需部署文件。
例如, 我們只對 ACP 頁面做出了變更, 我們可能只需要部署管理面板相關的資源:
```
$ ./nodebb build adminjs admincss tpl
```
以上的指令只會部署 ACP 面板的瀏覽器端 JS , 樣式表 以及 所有的模板文件。
有關 build 指令的詳細用法, 可以通過查看本文檔 `安裝 - 使用` 部分來充分了解。
## Grunt
為了優化開發過程, NodeBB 團隊 (可能還有一部分插件作者)會在開發工作時使用 `Grunt`。盡管您可能需要安裝 `grunt-cli` , 但 `grunt` 會隨著 `npm install` 直接被作為 NodeBB 的依賴安裝。
安裝完成后, 您可以簡單得通過 `grunt` 來編譯所有資源并啟動 NodeBB, `Grunt` 還會監聽資源變化, 編譯變動的資源。這使得我們無需通過 ACP, 或者通過指令重啟, 啟動 NodeBB。
## ES2015
我們更推薦使用 ES2015 或者更新的 JS 語法標準來書寫 NodeBB 插件。 這是規避 JS 錯誤丟失的最有效手段。
* 使用 `const` , `let` 而不是 `var`
```javascript
const a = 1;
let b = 1;
b = 2;
```
* 使用 `Promise`, 盡量規避回調
```javascript
Promise.resolve([1, 2, 3])
.then(data => {
// 做一些處理
})
.catch(err => {
winston.err(err);
});
```
* 善于利用 `Class`, `Generator`, `Symbol`, `Async Function` 等新特性
```
const privateData = Symbol('a');
class A {
constructor() {
this[privateData] = 'private'
}
}
new A()[privateData] // is private
new A()['a'] // is null
new A()[Symbol('a')] // is null
async function b() {
return true;
}
b()
.then(d =>{
// d is true
})
```
## 代碼風格
NodeBB 核心開發者使用 AirBnB 作為約束風格。但是,我們更推薦使用 standard 作為代碼的約束風格。 所以, 我們在 quickstart 中默認啟用了 standard 作為約束風格。
## 使用 QuickStart 來快速開發
NodeBB 官方的 QuickStart 地址為: https://github.com/NodeBB/nodebb-plugin-quickstart
**不過,在本章節中, 我們會使用我們自己編寫的 QuickStart 作為講解基礎。**
地址: https://github.com/NodeBB-China/nodebb-plugin-quickstart
>[info] 編寫: a632079
維護: PA Team
審核: PA Team
最后更新: 2018.05.06
- 序
- 贊助
- 導言
- 安裝
- 通過操作系統
- Windows + Mongodb/Redis
- Ubuntu/Debian + Redis/Mongodb
- CentOS + Redis
- CentOS + Mongodb
- FreeBSD/OpenBSD + Redis
- Arch Linux + Redis
- OSX + Redis
- 通過云服務
- 通過主機面板安裝
- AppNode
- CPanel
- 寶塔
- 使用
- FAQ
- 高級
- 運行 NodeBB
- 配置 Config.json
- 配置 Nginx
- 配置 MongoDB
- 更新 NodeBB
- 設置 Widgets
- 安裝 Yarn
- 更新 MongoDB
- 數據庫備份與恢復
- 重置管理員密碼
- 讓 NodeBB 支持搜索
- 優化
- 優化配置,提升NodeBB處理能力
- Google字體庫 -> 360公共前端庫
- Google字體庫 -> 中科大鏡像
- 海外VPS提升NodeBB訪問速度
- 通過 NodeBB API 自動發帖
- 開發
- 準備
- 常用方法 & 變量
- 插件制作
- 使用工具包編寫一個插件
- 主題制作
- 使用工具包編寫一個主題
- 部件制作
- 國際化
- 鉤子(hook)使用說明