<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 包 * 包(Package)是 Node.js 最重要的支柱。 * Node.js 根據 CommonJS 規范實現了包機制,但不完全遵循。 * 包是在模塊基礎上更深一步的抽象,Node.js 的包類似于 C/C++ 的函數庫或者 Java/.Net 的類庫。它將某個獨立的功能封裝起來,用于發布、更新、依賴管理和版本控制。 * 開發中使用 npm 來解決包的發布和獲取需求。Node.js package manager # 包規范 ## CommonJS 包規范和 Node.js 包實現 CommonJS 規范的包應該具備以下特征: * package.json 必須在包的頂層目錄下; * 二進制文件應該在 bin 目錄下; * JavaScript 代碼應該在 lib 目錄下; * 文檔應該在 doc 目錄下; * 單元測試應該在 test 目錄下。 Node.js 對包的要求并沒有這么嚴格,要求如下: * 包是一個目錄,其中包含一個 JSON 格式的包說明文件 package.json; * 但為了提高兼容性,建議在制作包的時候,嚴格遵守 CommonJS 規范。 Node.js 在調用某個包時,會首先檢查包中 package.json 文件的 main 字段,將其作為包的接口模塊,如果 package.json 或 main 字段不存在,會嘗試尋找 index.js 或 index.node 作為包的接口。 ## package.json package.json 是 CommonJS 規定的用來描述包的文件,完全符合規范的 package.json 文件應該含有以下字段。 * name :包的名稱,必須是唯一的,由小寫英文字母、數字和下劃線組成,不能包含空格。 * description :包的簡要說明。 * version :符合語義化版本識別規范的版本字符串。 * keywords :關鍵字數組,通常用于搜索。 * maintainers :維護者數組,每個元素要包含 name、email(可選)、web (可選)字段。 * contributors :貢獻者數組,格式與 maintainers 相同。包的作者應該是貢獻者數組的第一個元素。 * bugs :提交 bug 的地址,可以是網址或者電子郵件地址。 * licenses :許可證數組,每個元素要包含 type(許可證的名稱)和 url(鏈接到許可證文本的地址)字段。 * repositories : 倉庫托管地址數組,每個元素要包含 type(倉庫的類型,如 git ) * url(倉庫的地址)和 path(相對于倉庫的路徑,可選)字段。 * dependencies :生成環境包的依賴,一個關聯數組,由包名稱和版本號組成。 * devDependencies:開發環境包的依賴,一個關聯數組,由包的名稱和版本號組成。 # npm npm 是 Node.js 官方提供的包管理工具,它已經成了 Node.js 包的標準發布平臺。用于 Node.js 包的發布、傳播、依賴控制。npm 提供了命令行工具,使你可以方便地下載、安裝、升級、刪除包,也可以讓你作為開發者發布并維護包。常用的引用場景: * 開發者從 npm 服務器下載別人編寫的第三方包到本地使用。 * 開發者從 npm 服務器下載并安裝別人編寫的命令行程序到本地使用。 * 開發者將自己編寫的包或命令行程序上傳到 npm 服務器供別人使用。 在安裝 Node.js 的時候已一并安裝了,不需要額外安裝。 ## 使用 nmp 被墻問題 使用 npm 安裝包時候,其會到 [npm 包網站](https://www.npmjs.com/)下載依賴,但有這個網站是國外,在下載依賴的時候會很慢或是下載失敗。 * 配置淘寶鏡像,淘寶 NPM 鏡像,與官方 npm 的同步頻率目前為 10 分鐘一次。[官方網站](http://npm.taobao.org/) ~~~ npm config set registry=https://registry.npm.taobao.org ~~~ * 安裝 cnpm,安裝完之后使用 cnpm 來操作。 ~~~ npm install -g cnpm –registry=https://registry.npm.taobao.org ~~~ ## 包的相關命令 * 安裝包命令:`npm install [-g] 包名[@版本號] [-D]` * 帶有 -g,表示全局安裝,安裝到 Node.js 根據目錄 node\_modules 文件夾中,用于命令行下使用,不帶有 -g 表示本地安裝,安裝到當前項目中 node\_modules 文件夾中,并修改 package.json 中包依賴配置,用于當前項目用開發使用。 * 沒有帶版本號的話安裝的是最新版本,帶了版本號安裝指定版本。 * 不帶 -D 表示生產環境的包依賴,帶了 -D 表示開發環境的包依賴。 * 查看包命令:`npm list [-g] [包名]` * 帶有 -g,表示全局查看,不帶有 -g 表示本地查看。 * 帶有包名表示查看特定包,不帶有包名表示查看所有包。 * 更新包命令:`npm update [-g] [包名][@版本號]` * 帶有 -g,表示全局更新,不帶有 -g 表示本地更新。 * 帶有包名表示更新特定包,不帶有包名表示更新所有包。 * 沒有帶版本號的話更新到最新版本,帶了版本好更新到指定的版本。 * 卸載包命令:`npm uninstall [-g] 包名` * 帶有 -g,表示全局卸載,不帶有 -g 表示本地卸載。 ## 全局包操作 ~~~ npm install -g es-checker ? // 安裝檢測 Node.js 對 ES6 工具 es-checker ? ? ? ? ? ? ? ? // 在命令行輸入這命令就可以查看 ? npm list -g es-checker ? ? // 查看 es-checker 包 npm list -g ? ? ? ? ? ? ? ? // 查看所有的包 npm update -g es-checker ? // 更新 es-checker 包 npm uninstall -g es-checker // 卸載 es-checker 包 ~~~ ## 本地包操作 ### 創建包 * 首先建一個文件夾,例如 somepackage。 * 在這目錄里打開 Windows 命令行(終端) * 輸入命令 `npm init` 即可,根據提示輸入,作為 package.json 文件的內容。 * 若想生成 package.json 內容都使用默認值,那么輸入命令 `npm init -y` 按回車即可。 * 命令執行完之后,在 somepackage 目錄出現 package.json 文件。 * 自己手動在 somepackage 中新建一個 index.js 文件。 * 運行此包: * `node .` 執行當前項目 packjson 中 main 指向的 JavaScript 文件。 * `npm run test` 執行的是 scripts 中 test 字段對應命令。 ### 安裝包,更新包,卸載包 ~~~ npm install ejs npm update ejs npm list ejs npm uninstall ejs ~~~ ### 使用包 參考官方文檔,在當前項目中,新建兩個文件寫好下面的代碼,之后在命令行運行 node index.js 就可以看到效果。 ``` // index.js const ejs = require('ejs'); people = ['geddy', 'neil', 'alex']; html = ejs.render('<%= people.join(", "); %>', {people: people}); console.log(html); ```
                  <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>

                              哎呀哎呀视频在线观看