使用npm workspace 管理npm 包


從npm 7.0 開始已經支持workspace了(以前大家使用的比較多的是lerna 以及yarn。。。。)
npm 的workspace 使用簡單,而且將依賴統一放到了node_moduels 文件夾中,而且可以減少
我們測試的npm link 問題,是值得嘗試的

參考使用

  • 初始npm 項目
 
npm i -y
  • 添加一個項目
npm init -w ./packages/a

簡單代碼

module.exports = {
    name:"a",
    age:333
}
  • 添加另外一個項目
npm init -w ./packages/b

簡單代碼

module.exports = {
    name:"b",
    age:333
}
  • 項目入口使用模塊
    需要先安裝下類似lerna 的bootstrap,yarn 的workspace 可以自動處理
const a = require("a")
console.log(a)
  • 項目結構
├── index.js
├── node_modules
├── a -> ../packages/a
├── b -> ../packages/b
├── package-lock.json
├── package.json
└── packages
    ├── a
    └── b
  • 運行效果

 

 

  • 添加npm 引用

到一個具體的workspace

npm install shortid -w a 

 

 


workspace 都添加模塊

npm install uuid --workspaces

 

 

  • 運行命令
    功能上與給workspace添加包類似
 
npm run test --workspaces // 全部運行
npm run test --workspace=a --workspace=b // 指定workspace
npm run test --workspaces --if-present //異常處理

說明

目前來說npm 的workspace 是一個很不錯的lerna 以及yarn 替換模式,還是很值得使用的,同時也包含了publish 時候版本提升的處理

參考資料

https://docs.npmjs.com/cli/v8/using-npm/workspaces
https://docs.npmjs.com/cli/v8/commands/npm-publish


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM