<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種: * 允許用戶從NPM服務器下載別人編寫的三方包到本地使用。 * 允許用戶從NPM服務器下載并安裝別人編寫的命令行程序到本地使用。 * 允許用戶將自己編寫的包或命令行程序上傳到NPM服務器供別人使用。 可以看到,NPM建立了一個NodeJS生態圈,NodeJS開發者和用戶可以在里邊互通有無。以下分別介紹這三種場景下怎樣使用NPM。 ## 下載三方包 需要使用三方包時,首先得知道有哪些包可用。雖然[npmjs.org](https://npmjs.org/)提供了個搜索框可以根據包名來搜索,但如果連想使用的三方包的名字都不確定的話,就請百度一下吧。知道了包名后,比如上邊例子中的`argv`,就可以在工程目錄下打開終端,使用以下命令來下載三方包。 ~~~ $ npm install argv ... argv@0.0.2 node_modules\argv ~~~ 下載好之后,`argv`包就放在了工程目錄下的`node_modules`目錄中,因此在代碼中只需要通過`require('argv')`的方式就好,無需指定三方包路徑。 以上命令默認下載最新版三方包,如果想要下載指定版本的話,可以在包名后邊加上`@`,例如通過以下命令可下載0.0.1版的`argv`。 ~~~ $ npm install argv@0.0.1 ... argv@0.0.1 node_modules\argv ~~~ 如果使用到的三方包比較多,在終端下一個包一條命令地安裝未免太人肉了。因此NPM對`package.json`的字段做了擴展,允許在其中申明三方包依賴。因此,上邊例子中的`package.json`可以改寫如下: ~~~ { "name": "node-echo", "main": "./lib/echo.js", "dependencies": { "argv": "0.0.2" } } ~~~ 這樣處理后,在工程目錄下就可以使用`npm install`命令批量安裝三方包了。更重要的是,當以后`node-echo`也上傳到了NPM服務器,別人下載這個包時,NPM會根據包中申明的三方包依賴自動下載進一步依賴的三方包。例如,使用`npm install node-echo`命令時,NPM會自動創建以下目錄結構。 ~~~ - project/ - node_modules/ - node-echo/ - node_modules/ + argv/ ... ... ~~~ 如此一來,用戶只需關心自己直接使用的三方包,不需要自己去解決所有包的依賴關系。 ## 安裝命令行程序 從NPM服務上下載安裝一個命令行程序的方法與三方包類似。例如上例中的`node-echo`提供了命令行使用方式,只要`node-echo`自己配置好了相關的`package.json`字段,對于用戶而言,只需要使用以下命令安裝程序。 ~~~ $ npm install node-echo -g ~~~ 參數中的`-g`表示全局安裝,因此`node-echo`會默認安裝到以下位置,并且NPM會自動創建好Linux系統下需要的軟鏈文件或Windows系統下需要的`.cmd`文件。 ~~~ - /usr/local/ # Linux系統下 - lib/node_modules/ + node-echo/ ... - bin/ node-echo ... ... - %APPDATA%\npm\ # Windows系統下 - node_modules\ + node-echo\ ... node-echo.cmd ... ~~~ ## 發布代碼 第一次使用NPM發布代碼前需要注冊一個賬號。終端下運行`npm adduser`,之后按照提示做即可。賬號搞定后,接著我們需要編輯`package.json`文件,加入NPM必需的字段。接著上邊`node-echo`的例子,`package.json`里必要的字段如下。 ~~~ { "name": "node-echo", # 包名,在NPM服務器上須要保持唯一 "version": "1.0.0", # 當前版本號 "dependencies": { # 三方包依賴,需要指定包名和版本號 "argv": "0.0.2" }, "main": "./lib/echo.js", # 入口模塊位置 "bin" : { "node-echo": "./bin/node-echo" # 命令行程序名和主模塊位置 } } ~~~ 之后,我們就可以在`package.json`所在目錄下運行`npm publish`發布代碼了。 ## 版本號 使用NPM下載和發布代碼時都會接觸到版本號。NPM使用語義版本號來管理代碼,這里簡單介紹一下。 語義版本號分為`X.Y.Z`三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。 ~~~ + 如果只是修復bug,需要更新Z位。 + 如果是新增了功能,但是向下兼容,需要更新Y位。 + 如果有大變動,向下不兼容,需要更新X位。 ~~~ 版本號有了這個保證后,在申明三方包依賴時,除了可依賴于一個固定版本號外,還可依賴于某個范圍的版本號。例如`"argv": "0.0.x"`表示依賴于`0.0.x`系列的最新版`argv`。NPM支持的所有版本號范圍指定方式可以查看[官方文檔](https://npmjs.org/doc/files/package.json.html#dependencies)。 ## 靈機一點 除了本章介紹的部分外,NPM還提供了很多功能,`package.json`里也有很多其它有用的字段。除了可以在[npmjs.org/doc/](https://npmjs.org/doc/)查看官方文檔外,這里再介紹一些NPM常用命令。 * NPM提供了很多命令,例如`install`和`publish`,使用`npm help`可查看所有命令。 * 使用`npm help `可查看某條命令的詳細幫助,例如`npm help install`。 * 在`package.json`所在目錄下使用`npm install . -g`可先在本地安裝當前命令行程序,可用于發布前的本地測試。 * 使用`npm update `可以把當前目錄下`node_modules`子目錄里邊的對應模塊更新至最新版本。 * 使用`npm update -g`可以把全局安裝的對應命令行程序更新至最新版。 * 使用`npm cache clear`可以清空NPM本地緩存,用于對付使用相同版本號發布新版本代碼的人。 * 使用`npm unpublish @`可以撤銷發布自己發布過的某個版本代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看