Мне тяжело пытаться импортировать модули lodash. Я настроил свой проект, используя npm + gulp, и продолжаю ударять по одной стене. Я пробовал обычный lodash, но также lodash-es.
Пакет lodash npm: (имеет файл index.js в корневой папке пакета)
import * as _ from 'lodash';
Результаты в:
error TS2307: Cannot find module 'lodash'.
Пакет lodash-es npm: (имеет экспорт defaut в lodash.js я в корневую папку пакета)
import * as _ from 'lodash-es/lodash';
Результаты в:
error TS2307: Cannot find module 'lodash-es'.
Обе задачи gulp и webstorm сообщают о той же проблеме.
Забавный факт, это не возвращает ошибки:
import 'lodash-es/lodash';
... но, конечно, нет "_"...
Мой файл tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
Мой 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']);
Если я правильно понимаю, moduleResolution: 'node' в моем tsconfig должен указывать операторы импорта в папку node_modules, где установлены lodash и lodash-es. Я также пробовал много разных способов импорта: абсолютные пути, относительные пути, но ничего не работает. Есть идеи?
При необходимости я могу предоставить небольшой zip файл, чтобы проиллюстрировать проблему.