2016-05-07 10 views
5

Con sintassi modulo node.js è possibile caricare un modulo e utilizzare il tutto in una sola espressione:Carica e utilizzare un modulo ES6 in un'espressione

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

C'è qualche equivalente per i moduli ES6?

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

è il più vicino possibile; si tratta di due dichiarazioni complete e mi lascia un binding indesiderato per os.

+0

Fondamentalmente un duplicato di [opzioni di passaggio per le importazioni di moduli ES6] (http://stackoverflow.com/q/29923879/218196) –

risposta

7

No. I collegamenti ai moduli avvengono in modo statico quando il file viene analizzato e prima che venga eseguito. L'unico modo per ottenere ciò che stai cercando di fare è usare uno named export.

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

che vi permetterà di specificare l'esportazione nominato nel punto di ingresso del vostro programma:

import { numCPUs } from 'os'; 
+0

Dobbiamo conservare 'export const numCPUs = os.cpus(). Length;' in un altro file quindi importa da esso, giusto? – JagsSparrow

+1

Sì. Se è necessario rinviare l'esecuzione fino a dopo la fine dell'inizializzazione del programma, è possibile fare in modo che restituisca una promessa o esportare la funzione che fornisce il valore. – Alhadis

Problemi correlati