2016-05-07 7 views
5

Mit node.js Modul Syntax ein Modul laden und sie alle in einem Ausdruck verwenden:laden und verwenden Sie ein ES6 Modul in einem Ausdruck

const numCPUs = require('os').cpus().length; 

Gibt es eine Entsprechung für ES6 Module?

import os from 'os'; 
const numCPUs = os.cpus().length; 

ist die nächste, die ich bekommen kann; Das sind zwei vollständige Anweisungen und hinterlässt eine unerwünschte Bindung für os.

+0

Grundsätzlich ist ein Duplikat [Pass Optionen ES6 Modul importiert] (http://stackoverflow.com/q/29923879/218196) –

Antwort

7

Nein. Die Bindung an Module erfolgt statisch, wenn die Datei geparst wird und bevor sie ausgeführt wird. Der einzige Weg, um das zu erreichen, was Sie versuchen, ist die Verwendung eines named export.

export const numCPUs = os.cpus().length; 

Welche können Sie den Namen Export in Ihr Programm Einstiegspunkt angeben:

import { numCPUs } from 'os'; 
+0

Wir müssen 'export const numCPUs = os.cpus(). Length; 'in einer anderen Datei behalten, dann von dort importieren, oder? – JagsSparrow

+1

Ja. Wenn Sie die Ausführung verzögern müssen, bis die Initialisierung des Programms abgeschlossen ist, können Sie eine Ankündigung zurückgeben oder stattdessen die Funktion exportieren, die den Wert bereitstellt. – Alhadis

Verwandte Themen