是不是ES6取代node require()?我有以下代碼:node require()與es6 import:爲什麼這個例子沒有工作
var sprintf = require("sprintf-js").sprintf;
這像宣傳的那樣。我只能使用sprintf()。我想完成同樣使用ES6 import語句:
import sprintf from 'sprintf-js';
這是行不通的。爲什麼不?我該如何解決它?獎勵點數,如果你能解釋sprintf-js內的出口是如何工作的。
是不是ES6取代node require()?我有以下代碼:node require()與es6 import:爲什麼這個例子沒有工作
var sprintf = require("sprintf-js").sprintf;
這像宣傳的那樣。我只能使用sprintf()。我想完成同樣使用ES6 import語句:
import sprintf from 'sprintf-js';
這是行不通的。爲什麼不?我該如何解決它?獎勵點數,如果你能解釋sprintf-js內的出口是如何工作的。
您可以通過多種方式訪問模塊導出。 See the MDN article.
import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";
在這種情況下,你的語法會工作,如果你已經分配的sprintf
出口爲default
;如果您已將sprintf
分配給default
對象。
假設它不是,正確的語法將在大括號內引用導出的方法。
import { sprintf } from 'sprintf-js';
*「將包括一個解構的對象引用的方法」 *請注意,在'import'語句中使用的語法無關做解構。它只是看起來相似。只是爲了防止混淆。 –
啊。有趣的一點。我可能對導入的curlybrace語法有錯誤的印象。我認爲等價的導入就像'resource''中的import {prop:prop},但它顯然不起作用。 – Bosworth99
關於導入的好討論大括號語法:http://stackoverflow.com/questions/31096597/using-brackets-with-javascript-import-syntax – Bosworth99
你可能需要從「的sprintf JS」做'進口{}的sprintf;' –