ฉันมีปัญหาในการพยายามนำโมดูล lodash ที่นำเข้ามา ฉันตั้งค่าโครงการของฉันโดยใช้ npm + gulp และกดไปที่กำแพงเดิมต่อไป ฉันเคยลองไส้เดือนธรรมดา แต่ก็พยายามพักด้วยเช่นกัน
แพ็คเกจ lodash npm: (มีไฟล์ index.js ในโฟลเดอร์ root ของแพ็คเกจ)
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'.
ทั้งงานอึกและ 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 ขนาดเล็กเพื่อแสดงปัญหา