天天看點

npm初識 Getting Started

npm官方文檔

  • npm更新:npm install [email protected] -g
  • npm權限:當你要安裝一個npm包到全局時,如果發現提示沒有權限寫入到指定路徑,那麼解決方法就是修改npm全局包安裝目錄即可:npm config set prefix ‘newpath’。具體請參見fixing-npm-permissions
  • 安裝npm包到本地: npm install package_name
  • 使用package.json: http://blog.csdn.net/zmrdlb/article/details/53190696
  • 更新本地package: npm update。可以先運作npm outdated來看哪些包已經不是最新的。
    有時候你會發現,明明用npm outdated檢視已經不是最新的包,用npm update還是更新不到。這個是因為package.json裡面包的版本号辨別,預設後是(如):^1.2.3,标明版本号version>=1.2.3 <2.0.0;那麼如果要更新的包的最新版本是2.1.1,不屬于版本範圍,自然是更新不到了。解決辦法是:将package.json裡面包的版本号設定為”(>=0.0.0),然後執行npm update,則會更新到最新版本
  • 解除安裝本地package:

    npm uninstall package

    同時從dependencies配置中删除:npm uninstall –save package

    同時從devDependencies配置中删除:npm uninstall –save-dev package

  • 安裝package到全局: npm install -g package
  • 更新全局package: npm update -g package
  • 解除安裝全局package: npm uninstall -g package
  • 建立node子產品:
    1. 在一個目錄裡執行npm init, 建立package.json。預設main指向index.js
    2. 建立index.js,寫入代碼
    3. 釋出包到npm
    4. 在其他地方npm install 剛剛釋出的包,然後require測試
  • 釋出npm包
    1. 如果在npm registry還沒有一個使用者,則運作npm adduser 建立npm registry user
    2. npm login來登入
    3. npm publish 釋出包

    注意:預設每個檔案都會被包含釋出,除非用.gitignore或.npmignore裡面配置相關檔案來忽略

    如果提示403錯誤等,先修改目前所在檔案夾名和package.json裡面的name配置,這兩個命名是一樣的,比如:zmrdlb-npm-module-test(複雜點);要麼就是version得修改了。

    釋出成功後,則在https://www.npmjs.com/~看到你剛剛釋出的包了

  • Working with scoped packages: 暫時翻譯為-使用作用域包。scopes: 就像npm包的命名空間。如果一個包名以@開頭,那麼它就是一個scoped package。官方參考文章CLI documentation

    @scope/project-name

    @username/project-name

    1. 初始化一個scooped package

      package.json中的配置會如下:

      {

      “name”: “@username/project-name”

      }

      如果使用npm init,則可以在cli中指定scope

      npm init –scope=username

      也可以設定npm全局配置: npm config set scope username

    2. 釋出scoped package

      scoped package預設是私有的。為了釋出私有子產品,你需要成為一個付費的私有子產品使用者

      然而,public scoped modules是免費的并不需要付費。為了釋出一個public scoped module, 設定access配置并且釋出:npm publish –access=public

    3. 使用一個scoped package: npm install @username/project-name –save

      {

      “dependencies”: {

      “@username/project-name”: “^1.0.0”

      }

      }

      var projectName = require(“@username/project-name”)

    4. 使用scoped private modules: https://www.npmjs.com/private-modules
  • 使用dist-tags: tags是semver(就是npm包的版本号規範文法)的一個補充,組織标記包的不同版本
    1. add tags: npm dist-tag add <pkg>@<version> [<tag>]
    2. 更多文法介紹:https://docs.npmjs.com/cli/dist-tag
    3. publishing with tags: 預設,npm publish 會标記你的包使用latest标簽。如果使用–tag, 你能指定使用其他标簽。如:

      npm publish –tag beta

      表明這是一個測試版

    4. 安裝使用tag标記:npm install <pkg>預設安裝latest标簽标記的包。
      npm install <pkg>@<tag> 安裝指定tag的包