কৌণিক 2 + টাইপ স্ক্রিপ্ট অ্যাপ্লিকেশনে লোডাশ আমদানি করা হচ্ছে


262

লড্যাশ মডিউলগুলি আমদানি করার জন্য আমার বেশ কষ্ট হচ্ছে। আমি এনপিএম + গল্প ব্যবহার করে আমার প্রকল্পটি সেটআপ করেছি এবং একই প্রাচীরটি আঘাত করে চলেছি। আমি নিয়মিত লোডাশ চেষ্টা করেছি, তবে লোডাশ-এসও করেছি।

লডাশ এনএমপি প্যাকেজ: (প্যাকেজ রুট ফোল্ডারে একটি index.js ফাইল রয়েছে)

import * as _ from 'lodash';    

ফলাফল স্বরূপ:

error TS2307: Cannot find module 'lodash'.

লোডা-এস এনপিএম প্যাকেজ: (প্যাকেজ রুট ফোল্ডারে লড্যাশ.জেএসএসে একটি ডিফল্ট রফতানি রয়েছে)

import * as _ from 'lodash-es/lodash';

ফলাফল স্বরূপ:

error TS2307: Cannot find module 'lodash-es'.   

গুল্প টাস্ক এবং ওয়েবস্টর্ম উভয়ই একই সমস্যাটির প্রতিবেদন করে।

মজার সত্য, এটি কোনও ত্রুটি দেয় না:

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']);

আমি যদি সঠিকভাবে বুঝতে পারি তবে আমার tsconfig- র মডিউল: নোডের নোট_মডিউলগুলি ফোল্ডারে আমদানির বিবরণী নির্দেশ করা উচিত, যেখানে লোডাশ এবং লড্যাশ-এস ইনস্টল করা আছে। আমি আমদানি করার বিভিন্ন উপায়ও চেষ্টা করেছি: পরম পাথস, আপেক্ষিক পাথ, তবে কিছুই কাজ করছে বলে মনে হয় না। কোন ধারনা?

প্রয়োজনে আমি সমস্যাটি বর্ণনা করার জন্য একটি ছোট জিপ ফাইল সরবরাহ করতে পারি।


1
আমিও এই সমস্যায় পড়েছি। লড্যাশ লাইব্রেরিতে টাইপক্রিপ সংজ্ঞা মডিউলার ফর্ম্যাটে অন্তর্ভুক্ত থাকে না তাই আমদানির বিবৃতিগুলি কাজ করে না। এখন দেখা কেবলমাত্র কাজটি হ'ল আপনার সূচি। Html ফাইলে লোডাশের জন্য একটি স্ক্রিপ্টের রেফারেন্স তৈরি করুন তারপরে আপনার টাইপ স্ক্রিপ্ট ফাইলগুলিতে লড্যাশ.ডি.টি. আশা করি এটি শিগগিরই ঠিক হয়ে যাবে। যদি এর জন্য আরও কিছু কাজ থাকে তবে আমি এটি শুনতে চাই।
ব্র্যান্ডো

1
জিপ ফাইল দুর্দান্ত হবে। তবে দেখে মনে হচ্ছে আপনি কোনও মডিউল লোডার ব্যবহার করছেন না (যেমন জেএসপিএম বা ওয়েবপ্যাক)? স্ক্রিপ্ট ট্যাগের মাধ্যমে আপনি কৌনিকটি কীভাবে লোড করছেন? ভাল এইচটিএমএল পোস্ট করুন। আমি আপনাকে মডিউল লোডার হিসাবে ওয়েবপ্যাকটি ব্যবহার করার পরামর্শ দিচ্ছি, এখানে একটি উদাহরণ দেখুন -> github.com/jhades/angular2-library-example/tree/master/example/… এবং এটি একটি ন্যূনতম স্টার্টার -> github.com/jhades/ng2- ওয়েবপ্যাক-ন্যূনতম
বিশ্ববিদ্যালয়


1
আমি কেবল আমার মেল টিএসএস ফাইলটিতে এটি যুক্ত করে শেষ করেছি: /// <রেফারেন্স পাথ = "../ টাইপিং / tsd.d.ts" />
ডেভি

আজকের হিসাবে উপরের কোনটিই কাজ করে না। আমি কৌণিক ২.৪.৪ স্ট্যাক ব্যবহার করছি।

উত্তর:


442

টাইপসক্রিপ্ট ২.০ হিসাবে এটি কীভাবে করা যায় তা এখানে রয়েছে: (টিএসডি এবং টাইপগুলি নীচের পক্ষে স্বীকৃত হচ্ছে):

$ npm install --save lodash

# This is the new bit here: 
$ npm install --save-dev @types/lodash

তারপরে, আপনার .ts ফাইলে:

উভয় ক্ষেত্রেই:

import * as _ from "lodash";

বা (@ নাটিকের পরামর্শ অনুসারে):

import _ from "lodash";

পার্থক্য কী তা আমি ইতিবাচক নই। আমরা প্রথম সিনট্যাক্সটি ব্যবহার এবং পছন্দ করি। তবে কিছু রিপোর্ট করেছেন যে প্রথম সিনট্যাক্সটি তাদের পক্ষে কাজ করে না, এবং অন্য কেউ মন্তব্য করেছেন যে উত্তরোত্তর বাক্য গঠনটি অলস লোডযুক্ত ওয়েবপ্যাক মডিউলগুলির সাথে সঙ্গতিপূর্ণ নয়। YMMV।

ফেব্রুয়ারী 27, 2017 এ সম্পাদনা করুন:

নীচের import * as _ from "lodash";@ কোয়ের্ট অনুসারে টাইপসক্রিপ্ট ২.২.১, লোডাশ ৪.১.4.৪, এবং @ প্রকার / লড্যাশ ৪.১৪.৫৩ অনুযায়ী একমাত্র কার্যকরী বাক্য গঠন রয়েছে। তিনি বলেছেন যে অন্যান্য প্রস্তাবিত আমদানি সিনট্যাক্স ত্রুটিটি দেয় "কোনও ডিফল্ট রফতানি নেই"।


7
আমি নিশ্চিত করতে পারি যে এটি ব্যবহার করার সময় কাজ করে typescript 2.0.3। প্রকৃতপক্ষে এনপিএম প্যাকেজের typingsপক্ষে @typesঅপসারণ করা অনেক পরিষ্কার।
অ্যাড্রিয়ান মাইসা

8
import * as _ from "lodash";আমার পক্ষে কাজ করছিল না কিন্তু করছে import _ from "lodash";
গাবে ও'লিয়ারি

5
সতর্কতার একটি শব্দ, আমি import _ from "lodash"বাক্য গঠনটি অলস লোডযুক্ত ওয়েবপ্যাক মডিউলগুলির সাথে সঙ্গতিপূর্ণ নয় বলে খুঁজে পেয়েছি। কেন নিশ্চিত নয়, আমি বিস্তারিত তদন্ত করিনি।
টম মাকিন

6
"লোডাশ" থেকে আমদানি করুন _ 2.0 তে আর কাজ করে না work আপনাকে "লোডাশ" থেকে _ হিসাবে আমদানি ব্যবহার করতে হবে;
রজার ফার

6
এটি কেবলমাত্র উত্পাদন নয়, উন্নয়নের ক্ষেত্রে ব্যবহার করা উচিত, সুতরাং সেভ-ডেভ ব্যবহার করুন: npm install --save-dev @types/lodash আপনি যদি অদ্ভুত সমস্যা এবং বাগগুলি দেখেন তবে এটি ব্যবহার করে দেখুন : npm install --save-dev @types/lodash@4.14.50
লেথেগুই

64

26 সেপ্টেম্বর, 2016 আপডেট করুন:

@ টাইটয়ের উত্তর যেমনটি বলেছে, কয়েক মাস আগে আমরা ব্যবহৃত 'টাইপিং' ইনস্টলেশনগুলির পরিবর্তে আমরা এখন ব্যবহার করতে পারি:

npm install --save @types/lodash

উত্তরটি সমর্থন করে কিছু অতিরিক্ত রেফারেন্স এখানে দেওয়া হয়েছে:

যদি এখনও টাইপিং ইনস্টলেশন ব্যবহার করে থাকেন তবে '' '-' ফলস্বরূপ '' 'এবং' '' --গ্লোবাল '' 'সম্পর্কিত নীচে (অন্যদের দ্বারা) মন্তব্য দেখুন।

এছাড়াও, নতুন কুইক স্টার্টে কনফিগারেশন আর ইনডেক্স html এ নেই; এটি এখন systemjs.config.ts (যদি সিস্টেমজেএস ব্যবহার করে থাকে)।

আসল উত্তর:

এটি আমার ম্যাকটিতে কাজ করেছে ( কুইক স্টার্ট হিসাবে অ্যাংুলার 2 ইনস্টল করার পরে ):

sudo npm install typings --global
npm install lodash --save 
typings install lodash --ambient --save

আপনি বিভিন্ন ফাইল প্রভাবিত দেখতে পাবেন, যেমন

  • /typings/main.d.ts
  • /typings.json
  • /package.json

কৌণিক 2 কুইকস্টার্টটি System.js ব্যবহার করে, তাই আমি সূচক html এর কনফিগারেশনে 'মানচিত্র' যুক্ত করেছি:

System.config({
    packages: {
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map: {
      lodash: 'node_modules/lodash/lodash.js'
    }
  });

তারপরে আমার .ts কোডে আমি সক্ষম হয়েছি:

import _ from 'lodash';

console.log('lodash version:', _.VERSION);

২০১ 2016 সালের মাঝামাঝি থেকে সম্পাদনাগুলি:

@Tibbus যেমন উল্লেখ করেছে, কিছু প্রসঙ্গে, আপনার প্রয়োজন:

import * as _ from 'lodash';

যদি কৌণিক 2-বীজ থেকে শুরু হয় এবং আপনি যদি প্রতিবার আমদানি করতে না চান তবে আপনি মানচিত্রটি এড়িয়ে চলতে পারেন এবং পদক্ষেপগুলি আমদানি করতে পারেন এবং সরঞ্জাম / কনফিগারেশন / প্রকল্পের কনফিগ.সগুলিতে লোড্যাশ লাইনটিকে কেবল অসুবিধে করতে পারেন।

লড্যাশের সাথে আমার পরীক্ষাগুলি কাজ করতে, আমাকে কার্মা.কমফ.জেএস-এ ফাইল অ্যারেতে একটি লাইনও যুক্ত করতে হয়েছিল:

'node_modules/lodash/lodash.js',

আমি দেখতে পাচ্ছি যে এটি আমার টাইপস্ক্রিপ্ট সমস্যাগুলি সমাধান করে তবে ব্রাউজারে পৃষ্ঠাটি লোড করা আমি ত্রুটিটি দেখতে পাচ্ছি যে এটি মডিউল লোড্যাশটি খুঁজে পাচ্ছে না। দেখে মনে হচ্ছে এটি নোড_মডিউলগুলির পরিবর্তে '/ লড্যাশ' করার জন্য একটি ব্যর্থ xhr অনুরোধ করছে।
জ্যাক

1
@ জ্যাক আপনি কি মিস map: { lodash: 'node_modules/lodash/lodash.js' } করেছেন System.config?
xwb1989

5
আমার জন্য এটি 'লোডাশ' থেকে _ হিসাবে আমদানি দিয়েই কাজ করে;
টিবিবাস

1
... এবং এর import * as _ from 'lodash'পরিবর্তে আমাদের লেখার দরকার import _ from 'lodash'কী?
স্মার্টমাউস

2
@ স্মার্টমাউস --ambientপ্রাক্তন --global। পরেরটি 1.x তে ব্যবহৃত হয় এবং এগিয়ে যায়। যদিও, আমি মনে করি না যে সর্বশেষতম লোডাশ ৪.x এর মতো বৈশ্বিক মডিউল হিসাবে সংকলন করবে।
demisx

25

আগেরটা আগে

npm install --save lodash

npm install -D @types/lodash

সম্পূর্ণ লোডাশ লাইব্রেরি লোড করুন

//some_module_file.ts
// Load the full library...
import * as _ from 'lodash' 
// work with whatever lodash functions we want
_.debounce(...) // this is typesafe (as expected)

বা কেবলমাত্র ফাংশনগুলি লোড করুন যার সাথে আমরা কাজ করতে যাচ্ছি

import * as debounce from 'lodash/debounce'
//work with the debounce function directly
debounce(...)   // this too is typesafe (as expected)


UPDATE - March 2017

আমি বর্তমানে কাজ করছি ES6 modules, এবং সম্প্রতি আমি এর lodashমতো কাজ করতে সক্ষম হয়েছি :

// the-module.js (IT SHOULD WORK WITH TYPESCRIPT - .ts AS WELL) 
// Load the full library...
import _ from 'lodash' 
// work with whatever lodash functions we want
_.debounce(...) // this is typesafe (as expected)
...

বা importনির্দিষ্ট lodash functionality:

import debounce from 'lodash/debounce'
//work with the debounce function directly
debounce(...)   // this too is typesafe (as expected)
...

দ্রষ্টব্য - মধ্যে পার্থক্য থাকা * asপ্রয়োজন হয় নাsyntax


তথ্যসূত্র:

এখানে চিত্র বর্ণনা লিখুন

শুভকামনা


"ইসমাস্ক্রিপ্ট 2015 মডিউলগুলিকে লক্ষ্য করে যখন আমদানি অ্যাসাইনমেন্ট ব্যবহার করা যাবে না"
টুলকিট

@Toolkit। এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ। আমি উত্তর আপডেট করেছি। এই সমাধানগুলি কার্যকরভাবে চিহ্নিত করে কিনা তা পরীক্ষা করে দেখুন এবং যথাযথভাবে চিহ্নিত করুন।
আকাশ

2
import debounce from 'lodash/debounce'উৎপাদনের TS1192: Module node_modules/@types/lodash/debounce has no default exportযখন"allowSyntheticDefaultImports": false
Kross

1
আমি আমার আগের মন্তব্যে দাঁড়িয়ে আছি। প্রকারের ফাইলে বর্তমানে কোনও ডিফল্ট রফতানি নেই, সুতরাং এটি অনুমতির সাথে কাজ করে না সিন্থেটিক ডিফল্ট ইম্পোর্টগুলি মিথ্যা।
ক্রস

1
@ ক্রস এছাড়াও নোট করুন যে "allowSyntheticDefaultImports": trueআপনার tsconfig.json ফাইলে সংকলক বিকল্প যুক্ত করার পরে কোনও ত্রুটি এড়াতে প্রয়োজন হতে পারে।
আকাশ

24

পদক্ষেপ 1: নির্ভরতাগুলিতে লড্যাশ অন্তর্ভুক্ত করতে প্যাকেজ.জসন ফাইলটি পরিবর্তন করুন।

  "dependencies": {
"@angular/common":  "2.0.0-rc.1",
"@angular/compiler":  "2.0.0-rc.1",
"@angular/core":  "2.0.0-rc.1",
"@angular/http":  "2.0.0-rc.1",
"@angular/platform-browser":  "2.0.0-rc.1",
"@angular/platform-browser-dynamic":  "2.0.0-rc.1",
"@angular/router":  "2.0.0-rc.1",
"@angular/router-deprecated":  "2.0.0-rc.1",
"@angular/upgrade":  "2.0.0-rc.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"lodash":"^4.12.0",
"angular2-in-memory-web-api": "0.0.7",
"bootstrap": "^3.3.6"  }

পদক্ষেপ 2: আমি আমার কৌনিক 2 অ্যাপ্লিকেশনটিতে সিস্টেমজেএস মডিউল লোডার ব্যবহার করছি। সুতরাং আমি লোডাশ ম্যাপে systemjs.config.js ফাইলটি সংশোধন করব।

(function(global) {

// map tells the System loader where to look for things
var map = {
    'app':                        'app', // 'dist',
    'rxjs':                       'node_modules/rxjs',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    '@angular':                   'node_modules/@angular',
    'lodash':                    'node_modules/lodash'
};

// packages tells the System loader how to load when no filename and/or no extension
var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
    'lodash':                    {main:'index.js', defaultExtension:'js'}
};

var packageNames = [
    '@angular/common',
    '@angular/compiler',
    '@angular/core',
    '@angular/http',
    '@angular/platform-browser',
    '@angular/platform-browser-dynamic',
    '@angular/router',
    '@angular/router-deprecated',
    '@angular/testing',
    '@angular/upgrade',
];

// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function(pkgName) {
    packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

var config = {
    map: map,
    packages: packages
}

// filterSystemConfig - index.html's chance to modify config before we register it.
if (global.filterSystemConfig) { global.filterSystemConfig(config); }

System.config(config);})(this);

পদক্ষেপ 3: এখন এনপিএম ইনস্টল করুন

পদক্ষেপ 4: আপনার ফাইলে লোডাশ ব্যবহার করা।

import * as _ from 'lodash';
let firstIndexOfElement=_.findIndex(array,criteria);

আপনার সমাধানটি কীভাবে টাইপস্ক্রিপ্টের টাইপগুলি যত্ন করে? এনপিএম লোডাশ প্যাকেজটি .d.ts ফাইল অন্তর্ভুক্ত বলে মনে হয় না।
ভাইটালি নাইয়াজু

13

প্রকারভেদ ২.০, @ টাইপগুলি এনএমপি মডিউল টাইপগুলি আমদানি করতে ব্যবহৃত হয় to

# Implementation package (required to run)
$ npm install --save lodash

# Typescript Description
$ npm install --save @types/lodash 

এখন যেহেতু এই প্রশ্নের উত্তর দেওয়া হয়েছে আমি কীভাবে দক্ষতার সাথে লোডাস আমদানি করব সে বিষয়ে আমি যাব

পুরো লাইব্রেরি আমদানির ব্যর্থ সাফ উপায় (মূল.টায়)

import 'lodash';

এটি এখানে নতুন বিট:

আপনার প্রয়োজনীয় ফাংশনগুলি নিয়ে একটি হালকা লোডাশ প্রয়োগ করা

import chain from "lodash/chain";
import value from "lodash/value";
import map from "lodash/map";
import mixin from "lodash/mixin";
import _ from "lodash/wrapperLodash";

সূত্র: https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba#.kg6azugbd

PS: উপরের নিবন্ধটি বিল্ড সময় উন্নত করা এবং অ্যাপের আকার হ্রাস করার বিষয়ে একটি আকর্ষণীয় পঠন read


1
টিএসসির জন্য এটি দুর্দান্ত, তবে এটি বান্ডিলকারীদের সাথে অন্যান্য সমস্যা দেয়। কোনও সুযোগ আপনি রোলআপ মাধ্যমে এই কাজ পেতে পরিচালিত? অরেলিয়া-ক্লিমে এটির সাথে সমস্যাগুলিও দেয় :(। রোলআপ ত্রুটি : 'ডিফল্ট' নোড_মডিউলগুলি \ লডাশ \ কেব্যাব কেস.জেএস দ্বারা রফতানি করা হয় না ureরেলিয়া ক্লাইট ত্রুটি : এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই, খোলা '/ পরীক্ষামূলক u আউ-প্রজ ode নোড_মডিউলস \ লোডাশ \ লোডাশ \ কাবাব কেস.জেএস '
স্টিফেন লুটিয়ার

7
@ প্রকারের / লোটাস লাইটার সিনট্যাক্সটি এখনও সমর্থন করে না বলে মনে হচ্ছে। error TS1192: Module '"node_modules/@types/lodash/chain/index"' has no default export. এবং আরও অন্যান্য মডিউলগুলি সংক্ষিপ্ত import chain from "lodash/chain"আমদানির চেষ্টা করে
jamsinclair

10

আমি নিম্নলিখিত কমান্ড সহ সফলভাবে আমার প্রকল্পে লোডাশ আমদানি করেছি:

npm install lodash --save
typings install lodash --save

তারপরে আমি এটি নিম্নলিখিত উপায়ে আমদানি করেছি:

import * as _ from 'lodash';

এবং systemjs.config.js এ আমি এটি সংজ্ঞায়িত করেছি:

map: { 'lodash' : 'node_modules/lodash/lodash.js' }


8

আমার ঠিক একই সমস্যা ছিল, তবে একটি কৌণিক 2 অ্যাপ্লিকেশনটিতে এবং এই নিবন্ধটি কেবল এটিকে সমাধান করেছে: https://medium.com/@s_eschweiler/ using-external-libraries-with-angular-2-87e06db8e5d1#.p6gra5eli

নিবন্ধের সংক্ষিপ্তসার:

  1. লাইব্রেরি ইনস্টল করা হচ্ছে npm install lodash --save
  2. লোড্যাশের জন্য টাইপস্ক্রিপ্ট সংজ্ঞা যুক্ত করুন tsd install underscore
  3. স্ক্রিপ্ট সহ <script src="node_modules/lodash/index.js"></script>
  4. সিস্টেমজেএস কনফিগার করছে System.config({ paths: { lodash: './node_modules/lodash/index.js'
  5. মডিউল আমদানি করা হচ্ছে import * as _ from ‘lodash’;

আমি আশা করি এটি আপনার ক্ষেত্রেও কার্যকর হতে পারে


6
tsd এখন হ্রাস করা হয়েছে। আপনার টাইপিং ব্যবহার করা উচিত
hhsadiq

7

আর একটি মার্জিত সমাধান হ'ল আপনার যা প্রয়োজন কেবল তা পান, সমস্ত লড্যাশ আমদানি করবেন না

import {forEach,merge} from "lodash";

এবং তারপরে এটি আপনার কোডটিতে ব্যবহার করুন

forEach({'a':2,'b':3}, (v,k) => {
   console.log(k);
})

5
এটি কি আসলে কাজ করে? আমি এটি চেষ্টা করেছি এবং বান্ডেলের আকার পরিবর্তন হবে বলে মনে হচ্ছে না।
কোডি

1
সম্ভবত ফিরে না, কিন্তু এখন হ্যাঁ। এটি সর্বোত্তমভাবে কাঁপছে গাছ
Pian0_M4n

@ পিয়ান0_ এম 4 এন সম্ভবত আমি এটি ভুল করছি কিন্তু কৌণিক ক্লিপ দিয়ে চেষ্টা করেছি 1.4.4 গাছ কাঁপানো কাজ করে না
অলেক্সখেমেনকো

@alexKhymenko আপনি ত্রুটি পোস্ট করতে পারেন? এটি কি লোডাসের সাথে সংযুক্ত?
পিয়ান 0_ এম

@ পিয়ান0_ এম 4 এন তে কোনও ত্রুটি নেই, কেবল গাছ কাঁপছে না। এটি সমস্ত লাইব্রেরি প্রতিটি এবং মার্জ পদ্ধতিগুলির জন্য নয় লোড করে।
আলেক্সখেমেনকো 2:37

4

যদি অন্য কেউ এই সমস্যাটিতে চলে এবং উপরের সমাধানগুলির কোনও "ডুপ্লিকেট সনাক্তকারী" সমস্যার কারণে কাজ না করে থাকে তবে এটি চালান:

npm install typings --global

টাইপিংয়ের পুরানো সংস্করণগুলির সাথে জিনিসগুলি গোলমেলে এবং আপনি "ডুপ্লিকেট শনাক্তকারী" সমস্যাগুলির একগুচ্ছ পাবেন। --ambientআমি আপনাকে যতদূর বলতে পারি আপনাকে আর ব্যবহার করার দরকার নেই।

টাইপিংগুলি একবার আপ টু ডেট হয়ে গেলে, এটি কাজ করা উচিত (কৌণিক 2 কুইকস্টার্ট ব্যবহার করে)।

চালান:

npm install lodash --save 
typings install lodash --save

প্রথমে এটি systemjs.config.js এ যুক্ত করুন:

'lodash':                     'node_modules/lodash/lodash.js'

এখন আপনি এটি যে কোনও ফাইলে ব্যবহার করতে পারেন: import * as _ from 'lodash';

আপনার টাইপিং ফোল্ডারটি মুছুন এবং npm installআপনার এখনও সমস্যা থাকলে চলুন run


4

অনুগ্রহ করে নোট করুন যে npm install --saveআপনার অ্যাপ্লিকেশনটির কোড কোডে যা প্রয়োজন নির্ভরতা বাড়িয়ে তুলবে।
"টাইপিংস" হিসাবে, এটি কেবল টাইপস্ক্রিপ্ট দ্বারা প্রয়োজনীয়, যা শেষ পর্যন্ত জাভাস্ক্রিপ্টে স্থানান্তরিত হয়। অতএব, আপনি সম্ভবত তাদের উত্পাদন কোডে রাখতে চান না। আমি এটি devDependenciesব্যবহার করে আপনার প্রকল্পের পরিবর্তে এটি রাখার পরামর্শ দিচ্ছি

npm install --save-dev @types/lodash

অথবা

npm install -D @types/lodash

(উদাহরণস্বরূপ আকাশ পোস্ট দেখুন) যাইহোক, এটি এনজি 2 টুটোতে এভাবেই হয়।

বিকল্পভাবে, এখানে আপনার প্যাকেজ.জসন দেখতে কেমন হবে:

{
    "name": "my-project-name",
    "version": "my-project-version",
    "scripts": {whatever scripts you need: start, lite, ...},
    // here comes the interesting part
    "dependencies": {
       "lodash": "^4.17.2"
    }
    "devDependencies": {
        "@types/lodash": "^4.14.40"
    }
}

শুধু একটি টিপ

সুন্দর জিনিসটি npmহ'ল আপনি কেবলমাত্র একটি দ্বারা শুরু করতে পারেন npm install --saveবা --save-devআপনি যে নির্ভরতা খুঁজছেন তার সর্বশেষ উপলব্ধ সংস্করণ সম্পর্কে নিশ্চিত নন এবং এটি package.jsonপরবর্তী ব্যবহারের জন্য এটি স্বয়ংক্রিয়ভাবে আপনার জন্য সেট করবে will


3

আমি টাইপগুলিও তৈরি করেছিলাম lodash-esতাই এখন আপনি নিম্নলিখিতটি করতে পারেন

ইনস্টল

npm install lodash-es -S
npm install @types/lodash-es -D

ব্যবহার

import kebabCase from "lodash-es/kebabCase";
const wings = kebabCase("chickenWings");

যদি আপনি রোলআপ ব্যবহার করেন তবে আমি lodashএটির পরিবর্তে এটি ব্যবহার করার পরামর্শ দিচ্ছি কারণ এটি যথাযথভাবে গাছের ঝাঁকানো হবে।


3

লোডাশ থেকে আংশিক আমদানি নিম্নলিখিত স্বরলিপি ব্যবহার করে কৌণিক 4.1.x এ কাজ করা উচিত :

let assign = require('lodash/assign');

অথবা 'লোডাশ-এস' ব্যবহার করুন এবং মডিউলটিতে আমদানি করুন:

import { assign } from 'lodash-es';

import { assign } from 'lodash-es';এখনও পুরো লাইব্রেরিটি আমদানি করা মনে হচ্ছে (বান্ডিল আকারের দ্বারা বিচার করা)
ইহোরবন্ড

2

এর মাধ্যমে ইনস্টল করুন npm

$ npm install lodash --save

এখন, importফাইলটিতে:

$ import * as _ from 'lodash';

ENV:

কৌণিক সিএলআই: 1.6.6
নোড: 6.11.2
ওএস: ডারউইন এক্স 64
কৌণিক: 5.2.2
টাইপ
স্ক্রিপ্ট: 2.4.2 ওয়েবপ্যাক: 3.10.0


1
  1. লড্যাশ ইনস্টল করুন

sudo npm install typings --global npm install lodash --save typings install lodash --ambient --save

  1. ইনডেক্স.ইচটিএমএলে লোডাশের জন্য মানচিত্র যুক্ত করুন:

System.config({ packages: { app: { format: 'register', defaultExtension: 'js' } }, map: { lodash: 'node_modules/lodash/index.js' } });

  1. .Ts কোড আমদানি লড্যাশ মডিউল

import _ from 'lodash';


এটি ত্রুটি ছুঁড়ে ফেলছে:$ typings install lodash --ambient --save typings ERR! message https://api.typings.org/entries/npm/lodash/versions/latest responded with 407, expected it to equal 200
কামাইদ

1

আমি ওয়েবপ্যাকের সাহায্যে এনজি 2 ব্যবহার করছি, সিস্টেম জেএস নয়। আমার জন্য প্রয়োজনীয় পদক্ষেপগুলি ছিল:

npm install underscore --save
typings install dt~underscore --global --save

এবং তারপরে ফাইলটিতে আমি আন্ডারস্কোরটি আমদানি করতে চাই:

import * as _ from 'underscore';

1

কমান্ডের মাধ্যমে typingsএবং tsdকমান্ডের মাধ্যমে প্রকার পরিচালনা করা শেষ পর্যন্ত এনপিএমের মাধ্যমে ব্যবহারের পক্ষে অবমুক্ত করা হয় npm install @types/lodash

তবে আমি দীর্ঘদিন আমদানির বিবৃতিতে "মডিউল লোডাশ খুঁজে পাই না" নিয়ে লড়াই করেছি:

import * as _ from 'lodash';

শেষ পর্যন্ত আমি বুঝতে পেরেছি টাইপসক্রিপ্টটি কেবল নোড_মডিউলগুলি / @ প্রকারগুলি থেকে সংস্করণ 2 শুরু করার ধরণগুলি লোড করবে এবং আমার ভিসকোড ভাষা পরিষেবাটি এখনও 1.8 ব্যবহার করছে, সুতরাং সম্পাদক ত্রুটিগুলি রিপোর্ট করছে।

আপনি যদি ভিএসকোড ব্যবহার করছেন তবে আপনাকে অন্তর্ভুক্ত করতে চাইবেন

"typescript.tsdk":  "node_modules/typescript/lib"

আপনার ভিএসকোড সেটিংস.জসন ফাইলে (ওয়ার্কস্পেস সেটিংসের জন্য) এবং নিশ্চিত করুন যে আপনি টাইপ স্ক্রিপ্ট সংস্করণ> = 2.0.0 এর মাধ্যমে ইনস্টল করেছেন npm install typescript@2.0.2 --save-dev

এর পরে আমার সম্পাদক আমদানির বিবৃতি সম্পর্কে অভিযোগ করবেন না।


1

যদি পরে কাজ না

$ npm install lodash --save 
$ npm install --save-dev @types/lodash

আপনি এটি চেষ্টা করুন এবং লোডাশ আমদানি করুন

typings install lodash --save


0

সমস্ত টার্মিনাল মাধ্যমে ইনস্টল করুন:

npm install lodash --save
tsd install lodash --save

Index.html এ পাথ যুক্ত করুন

<script>
    System.config({
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js'
            }
        },
        paths: {
            lodash: './node_modules/lodash/lodash.js'
        }
    });
    System.import('app/init').then(null, console.error.bind(console));
</script>

.Ts ফাইলের শীর্ষে লোডাশ আমদানি করুন

import * as _ from 'lodash'

7
tsd এখন হ্রাস করা হয়েছে। আপনার টাইপিং ব্যবহার করা উচিত
hhsadiq

1
টাইপগুলি এখন হ্রাস করা হয়েছে। আপনার @ টাইপগুলি ব্যবহার করা উচিত
লুকা ট্রাজি

0

আমি প্রিবুট / কৌণিক-ওয়েবপ্যাকটি ব্যবহার করে কৌণিক 4.0.0 এ আছি এবং কিছুটা আলাদা রুট যেতে হয়েছিল।

@ টেটে প্রদত্ত সমাধানটি বেশিরভাগ ক্ষেত্রে আমার পক্ষে কাজ করেছিল:

npm install --save lodash
npm install --save @types/lodash

এবং একটি প্রদত্ত। কম্পোনেন্ট.সেট ফাইলগুলিতে ফাংশনগুলি আমদানি করে:

import * as _ from "lodash";

এটি কোনও "ডিফল্ট" রফতানি শ্রেণি নেই বলে কাজ করে। আমার তফাতটি আমার তৃতীয় পক্ষের লাইব্রেরিতে লোড করার জন্য যেভাবে সরবরাহ করা হয়েছিল তা খুঁজে পাওয়ার দরকার ছিল: বিক্রেতার ডটকম যা এখানে বসেছিল:

src/vendor.ts

আমার vendor.ts ফাইলটি এখন দেখতে এ জাতীয় দেখাচ্ছে:

import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';

import 'rxjs';
import 'lodash';

// Other vendors for example jQuery, Lodash or Bootstrap
// You can import js, ts, css, sass, ...

1
আপনি সত্যিই lodash থেকে পুরো rxjs এবং সবকিছু আমদানি নিচে ডায়াল উচিত ...
MTJ

0

হতে পারে এটি খুব অদ্ভুত, তবে উপরের কেউই আমাকে সাহায্য করেন নি, সবার আগে, কারণ আমি সঠিকভাবে লোডাশ ইনস্টল করেছি (উপরের পরামর্শের মাধ্যমে পুনরায় ইনস্টলও করা)।

এত দীর্ঘ সংক্ষিপ্ত বিবরণটি লোডাশ_.has থেকে পদ্ধতিটি ব্যবহারের সাথে সংযুক্ত ছিল ।

আমি কেবল জেএস inঅপারেটর ব্যবহার করে এটি ঠিক করেছি ।


-1

চেষ্টা করুন >> tsd install lodash --save


8
tsd এখন হ্রাস করা হয়েছে। আপনার টাইপিং ব্যবহার করা উচিত
hhsadiq

7
টাইপগুলি এখন হ্রাস করা হয়েছে। আপনার @ টাইপস ব্যবহার করা উচিত .. :)
হরিশ

12
আমি অন্য অবচয় মন্তব্যটির জন্য অপেক্ষা করছি;)
ইদ্রিস খান

অবচয় হ্রাস করা হয়। আমার উপর দোষ দিবেন না আপনি
সেইটির

-1

আপনি এগিয়ে যেতে এবং ভাল পুরানো প্রয়োজনীয় মাধ্যমে আমদানি করতে পারেন, যেমন:

const _get: any = require('lodash.get');

এটিই আমাদের পক্ষে কাজ করেছে। অবশ্যই, নিশ্চিত করুন যে কোনও প্রয়োজনীয় () কলগুলি আমদানির পরে আসে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.