Me está costando mucho tratar de importar los módulos lodash. He configurado mi proyecto usando npm + gulp, y sigo golpeando la misma pared. He probado el lodash normal, pero también lodash-es.
El paquete lodash npm: (tiene un archivo index.js en la carpeta raíz del paquete)
import * as _ from 'lodash';
Resultados en:
error TS2307: Cannot find module 'lodash'.
El paquete lodash-es npm: (tiene una exportación predeterminada en lodash.js i la carpeta raíz del paquete)
import * as _ from 'lodash-es/lodash';
Resultados en:
error TS2307: Cannot find module 'lodash-es'.
Tanto la tarea de Gulp como la tormenta web informan el mismo problema.
Dato curioso, esto no devuelve ningún error:
import 'lodash-es/lodash';
... pero por supuesto no hay "_" ...
Mi archivo tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
Mi 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']);
Si entiendo correctamente, moduleResolution: 'node' en mi tsconfig debería apuntar las declaraciones de importación a la carpeta node_modules, donde están instalados lodash y lodash-es. También probé muchas formas diferentes de importar: rutas absolutas, rutas relativas, pero nada parece funcionar. ¿Algunas ideas?
Si es necesario, puedo proporcionar un pequeño archivo zip para ilustrar el problema.