2017-10-31 3 views
0

Ich habe diese Datei zu exportieren: commonutils.jsMisch Commonjs Modul mit ES6 Modul zwei Funktionen

import { isBoolean, isNil } from 'lodash'; // isNil , check undefined or null 
import moment from 'moment'; 

let dateToISO = function (dateString) { 
    if (!dateString) { 
    return null; 
    } 
    let p = dateString.split(/\D/g); 
    return [p[2], p[1], p[0]].join('-'); 
} 
let ISOtoDate = function (dateString) { 
    if (isNil(dateString) || dateString === '') { 
    return ''; 
    } 
    return moment(dateString).format('DD-MM-YYYY'); 
} 

module.exports.dateToISO = dateToISO; 
module.exports.ISOtoDate = ISOtoDate; 

wenn ich versuche, die Namen der Einfuhr zu importieren auf WebStorm, WebStorm abzuschließen, wenn ich schreibe:

import { dateToISO, ISOtoDate } from './commonutils'; 

aber wenn ich ausführen, bekomme ich diesen Fehler:

./src/utils/validators.js 
8:10-19 './commonutils' does not contain an export named 'dateToISO'. 

was ich falsch mache?

Update:

mit diesem Import:

const { dateToISO, ISOtoDate } = require('./commonutils'); 

ich:

TypeError: Cannot set property 'dateToISO' of undefined 
> module.exports.dateToISO = dateToISO; 
+1

ok, wo ist 'dateToISO' definiert? – dandavis

+0

Ich habe die Antwort mit dem vollständigen Code – DDave

Antwort

0

Sie sind eine mit einem ES6 Importmodul Export Syntax Commonjs verwenden. Für den Import müssen Sie etwas tun wie:

const { dateToISO, ISOtoDate } = require('./commonutils'); 
+0

aktualisiert Danke, ich bekomme jetzt TypeError: Kann Eigenschaft 'dateToISO' von undefined nicht setzen – DDave

+0

Ich bin verwirrt, warum Sie CommonJS Exporte verwenden. Warum nicht einfach ES6-Exporte für die beiden Funktionen verwenden? –

+0

, weil ich direkt mit $ Knoten eine andere js-Datei ausführen, die diese Bibliothek aufrufen, Knoten nicht direkt unterstützt, können Sie Ihre Antwort ändern, ändern Sie einfach die Importe wie erfordern, weil Sie anscheinend Import und commonjs nicht mischen können – DDave

Verwandte Themen