मैं एक कठिन समय के लिए कोशिश कर रहा हूँ दर्ज किए गए मॉड्यूल आयात करने की कोशिश कर रहा हूँ। मैंने npm + gulp का उपयोग करके अपने प्रोजेक्ट को सेटअप किया है, और उसी दीवार से टकराना चाहता हूं। मैंने नियमित रूप से रहने की कोशिश की है, लेकिन यह भी दर्ज है।
दर्ज करें npm पैकेज: (पैकेज रूट फ़ोल्डर में एक index.js फ़ाइल है)
import * as _ from 'lodash';
का परिणाम:
error TS2307: Cannot find module 'lodash'.
Lodash-es npm पैकेज: (lodash.js में मैं पैकेज रूट फ़ोल्डर में एक डिफोट एक्सपोर्ट है)
import * as _ from 'lodash-es/lodash';
का परिणाम:
error TS2307: Cannot find module 'lodash-es'.
Gulp टास्क और वेबस्टॉर्म दोनों एक ही मुद्दे की रिपोर्ट करते हैं।
मजेदार तथ्य, यह कोई त्रुटि नहीं देता है:
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']);
अगर मुझे सही तरीके से समझ में आ रहा है, तो modResolution: मेरे tsconfig में 'नोड' को आयात स्टेटमेंट्स को नोड_मॉडल फ़ोल्डर में इंगित करना चाहिए, जहां लॉश और लॉश-एस स्थापित हैं। मैंने आयात करने के विभिन्न तरीकों की बहुत कोशिश की है: निरपेक्ष पथ, रिश्तेदार पथ, लेकिन काम करने के लिए कुछ भी नहीं लगता है। कोई विचार?
यदि आवश्यक हो तो मैं समस्या को चित्रित करने के लिए एक छोटी सी ज़िप फ़ाइल प्रदान कर सकता हूं।