npm到yarn的使用

1、yarn的優勢及與npm的區別

首先咱們來講說,爲何好好的npm不用,要使用yarn,固然我目前尚未體會到他的優勢,由於剛剛使用,可是做爲一名小菜鳥,遇到這種更好的技術仍是想使用探究一下,下面咱們來講yarn相較於npm的優勢:node

  1. 速度快,主要體如今下面兩個方面:webpack

    • 並行安裝:不管是npm仍是yarn在執行包的安裝時,都會執行一系列任務。npm是按照隊列執行每一個package,也就是必需要等到當前的package安裝完畢以後才進行下一個package的安裝。而yarn是同步執行全部任務,提升了性能。
    • 離線模式:若是以前已經安裝了軟件包,用yarn再次安裝時會從緩存中獲取,不用像npm再從網絡下載了
  2. 安裝版本統一:爲了防止拉取到不一樣的版本,yarn有一個鎖定文件yarn.lock記錄了被確切安裝上的模塊的版本號。每次只要新增了一個模塊,yarn就會建立或更新yarn.lock這個文件。這麼作就保證了每次拉取同一個項目依賴時,使用的都是一個模塊版本。npm其實也能夠作處處處使用同一個模塊的版本,但須要開發者執行npm shrinkwrap命令。這個命令將會生成一個鎖定文件,在執行npm install時,該鎖定文件會先被讀取,和yarn讀取yarn.lock文件一個道理。npm和yarn的不一樣之處在於,yarn會默認生成這樣的鎖定文件,而npm要經過shrinkwrap命令生成npm-shrinkwrap.json文件,只有當這個文件存在的時候,packages的版本信息纔會記錄和更新。
  3. 更簡潔的輸出:npm的輸出信息比較冗長。在執行npm install <package>時,命令行上會不斷打印出全部被安裝上的依賴。相比之下,yarn簡潔太多,默認狀況下,結合了emoji直觀且直接的打印出必要的信息,也提供了一些命令供開發者查詢額外的安裝信息。
  4. 多註冊來源處理:全部的依賴包,無論他被不一樣的庫間接關聯多少次,安裝這個包時,只會從一個註冊來源去裝,要麼是npm要麼是bower,防止出現混亂不一致。
  5. 更好的語義化:yarn改變了一些npm命令的名稱,好比yarn add/remove,感受上比npm本來的install/uninstall更加易懂清晰。
npm yarn
npm install yarn
npm install webpack --save yarn add webpack
npm uninstall webpack --save yarn remove webpack
npm install webpack --save-dev yarn add webpack -dev
npm update --save yarn upgrade
  • 查看版本

    yarn --version
    npm -version (node -v)web

  • 安裝淘寶鏡像
yarn config set registry 'https://registry.npm.taobao.org'
npm install -g cnpm --registry=http://registry.npm.taobao.org
  • 初始化某個項目
    yarn init
    cnpm init
  • 默認安裝項目依賴
    yarn
    npm install
  • 安裝某個依賴,並默認保存到package
    yarn add **
    npm install ** --save
  • 卸載某個項目依賴
    yarn remove **
    cnpm uninstall ** --save
  • 更新某個項目依賴
    yarn upgrade **
    cnpm update ** --save
  • 安裝某個全局項目依賴
    yarn global add **
    cnpm install ** -g
  • 安裝某個特定版本號的項目依賴
    yarn add **@
    cnpm install **@1.1.1 --save
  • 發佈、登陸、登出,一系列npm registry 操做
    yarn publish/login/logout
    npm publish/login/logout
  • 運行某個命令
    yarn run/test
    npm run/test

2、如何從npm轉換到yarn環境

  1. 沒有使用過yarn的要先全局安裝yarn
    npm install -g yarn
  2. 在已存在npm的項目中運行yarn,至關於yarn install
    yarn (運行成功後會在項目根目錄下生成yarn.lock文件)
  3. 這時候會報錯,什麼node_modules/webpack-dev-server/node_modules/ansi-regex/index.js找不到之類的,我是絞盡腦汁,找了半天錯誤到底在哪裏,啊啊啊啊,後來只是從新運行就行了,fuck!你運氣好的話可能不會報錯哈哈哈哈。插入一個小知識,這個是由於咱們的域名寫死了端口號,因此咱們必須用固定的端口號啓動,否則打不開頁面。so,mac下查看進程的命令:sudo lsof -i:8086;殺死進程的命令:sudo kill -9 24830
  4. 若是你認爲yarn不適合你,你仍可以回去使用npm,並不須要作任何的變化。若是這個項目沒有人須要使用yarn,那麼你就能夠刪除你的yarn.lock文檔
  5. 若是你的同伴在項目中仍是使用npm,而你用yarn,那麼yarn.lock和package.lock.js直接都提交就行了。
相關文章
相關標籤/搜索