Es fällt mir schwer, die lodash-Module importieren zu lassen. Ich habe mein Projekt mit npm + gulp eingerichtet und treffe immer wieder auf dieselbe Wand. Ich habe das normale Lodash ausprobiert, aber auch Lodash-es.
Das lodash npm-Paket: (hat eine index.js-Datei im Paketstammordner)
import * as _ from 'lodash';
Ergebnisse in:
error TS2307: Cannot find module 'lodash'.
Das lodash-es npm-Paket: (hat einen defaut-Export in lodash.js im Paketstammordner)
import * as _ from 'lodash-es/lodash';
Ergebnisse in:
error TS2307: Cannot find module 'lodash-es'.
Sowohl die Schluckaufgabe als auch der Websturm melden dasselbe Problem.
Komische Tatsache, dies gibt keinen Fehler zurück:
import 'lodash-es/lodash';
... aber natürlich gibt es kein "_" ...
Meine tsconfig.json-Datei:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
Meine gulpfile.js:
var gulp = require('gulp'),
ts = require('gulp-typescript'),
uglify = require('gulp-uglify'),
sourcemaps = require('gulp-sourcemaps'),
tsPath = 'app/**/*.ts';
gulp.task('ts', function () {
var tscConfig = require('./tsconfig.json');
gulp.src([tsPath])
.pipe(sourcemaps.init())
.pipe(ts(tscConfig.compilerOptions))
.pipe(sourcemaps.write('./../js'));
});
gulp.task('watch', function() {
gulp.watch([tsPath], ['ts']);
});
gulp.task('default', ['ts', 'watch']);
Wenn ich das richtig verstehe, sollte moduleResolution: 'node' in meiner tsconfig die import-Anweisungen auf den Ordner node_modules verweisen, in dem lodash und lodash-es installiert sind. Ich habe auch viele verschiedene Importmethoden ausprobiert: absolute Pfade, relative Pfade, aber nichts scheint zu funktionieren. Irgendwelche Ideen?
Bei Bedarf kann ich eine kleine Zip-Datei bereitstellen, um das Problem zu veranschaulichen.