以下是關於前端項目模塊化的實踐,包含以下內容:
- 使用 TypeScript 的收益
- 使用 Mocha/Jest 進行單元測試 [實現中]
本文是關於前端項目模板化的第1部分
使用 Docker 搭建私有NPM倉庫
關於 Docker 的使用不在本文之中,請自行參考其他文檔。
經過測試, keyvanfatehi/sinopia 可用。
- 將 docker image 拉下來
docker pull keyvanfatehi/sinopia
- 將 keyvanfatehi/sinopia 跑起來
docker run --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia
我的 docker 主機名是 ubuntu-17,此時通過 http://ubuntu-17/4873
可以訪問私有NPM 倉庫網頁。
發布 JavaScript 類庫
添加示例類庫項目 myGreeting
mkdir myGreeting
cd myGreeting
yarn init -y # npm init -y
touch index.js
在 index.js 內添加如下內容
let greeting = function(name) {
return 'Hello ' + name;
}
module.exports = greeting;
這份代碼導出了一個函數,已經可以發布和被依賴了。
- npm adduser
初次使用這個私有倉庫需要添加用戶
npm adduser --registry http://ubuntu-17:4873
- npm publish
再把上面的代碼發布上去
npm publish . --registry http://ubuntu-17:4873
NPM 有自己的版本和發布策略,可以使用以下命令查看幫助文檔
npm help version
npm help publish
發布可能因為版本問題失敗,追加謂詞 --force 可強制發布但並非是常規操作。
發布后的管理頁面圖示
引用已發布的類庫
添加示例業務項目 myDemo
mkdir myDemo
cd myDemo
yarn init -y # npm init -y
touch index.js
引用 myGreeting
yarn add myGreeting --dev --registry http://ubuntu-17:4873
在 index.js 內添加如下內容
const myGreeting = require('myGreeting');
(function() {
let greeting = myGreeting('Rattz');
console.log(greeting);
})();
運行起來
node index.js
Hello Rattz
至此私有NPM倉庫搭建、類庫發布、依賴引用的部分已經完成。
項目所使用源碼已發布 github,jusfrw 原創