commonJS -- require

來源:互聯網
上載者:User

標籤:模組   檔案   使用   var   舉例   指定   foo   script   預設   

require命令用於負載檔案,尾碼名預設為.js

var foo = require(‘foo‘);//  等同於var foo = require(‘foo.js‘);

根據參數的不同格式,require命令去不同路徑尋找模組檔案。

(1)如果參數字串以“/”開頭,則表示載入的是一個位於絕對路徑的模組檔案。比如,require(‘/home/marco/foo.js‘)將載入/home/marco/foo.js

(2)如果參數字串以“./”開頭,則表示載入的是一個位於相對路徑(跟當前執行指令碼的位置相比)的模組檔案。比如,require(‘./circle‘)將載入當前指令碼同一目錄的circle.js

(3)如果參數字串不以“./“或”/“開頭,則表示載入的是一個預設提供的核心模組(位於Node的系統安裝目錄中),或者一個位於各級node_modules目錄的已安裝模組(全域安裝或局部安裝)。

舉例來說,指令碼/home/user/projects/foo.js執行了require(‘bar.js‘)命令,Node會依次搜尋以下檔案。

  • /usr/local/lib/node/bar.js
  • /home/user/projects/node_modules/bar.js
  • /home/user/node_modules/bar.js
  • /home/node_modules/bar.js
  • /node_modules/bar.js

這樣設計的目的是,使得不同的模組可以將所依賴的模組本地化。

(4)如果參數字串不以“./“或”/“開頭,而且是一個路徑,比如require(‘example-module/path/to/file‘),則將先找到example-module的位置,然後再以它為參數,找到後續路徑。

(5)如果指定的模組檔案沒有發現,Node會嘗試為檔案名稱添加.js.json.node後,再去搜尋。.js件會以文字格式設定的JavaScript指令檔解析,.json檔案會以JSON格式的文字檔解析,.node檔案會以編譯後的二進位檔案解析。

(6)如果想得到require命令載入的確切檔案名稱,使用require.resolve()方法。

commonJS -- require

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.