2017-06-26 53 views
1

+符號在此進口報關中代表什麼?ES6進口報關+符號

import app from '+/api';

而不是僅僅:

import app from '/api';

導入片段是從使用被transpiled與巴貝爾ES6節點的應用程序。

./api/index.js出口使用export default app;

我還看到此語法的Express實例,使用一個波浪線:

import app from '~/api';

+3

如果應用程序使用webpack或browserify或任何其他模塊打包程序,那麼您必須查看其配置文件或文檔。這些符號在ECMAScript或Node中沒有任何含義。 –

回答

5

模塊標識符的結構或它應該如何解釋是not part of the ECMAScript specification

模塊標識符的含義由模塊加載程序定義,即系統中實際佔用該值並使用它來查找相應模塊的部分。

當然Node.js有一個模塊加載器。它是Node.js defines that module identifiers are either names of shared modules or paths to files

但是,這裏+(或~)在Node.js中沒有任何含義。我只能假設該項目可能使用模塊打包器或類似的處理模塊文件及其依賴項。正是這個系統的一部分定義了+的含義。


我認爲這是一個問題,很多人不明白:雖然ES6定義聲明依賴性的標準語法,模塊標識符實際模塊的分辨率不是的一部分規格並且在運行時間/環境之間可能差別很大。鑑於Node.js的受歡迎程度最可能與CommonJS module system(這是Node所使用的)兼容,但再次,沒有標準。