অ্যাঙ্গুলার 4 এ আপগ্রেড করার পরে 'প্রয়োজনীয়' নামটি খুঁজে পাওয়া যায় না


120

আমি আমার কৌণিক প্রকল্পের মধ্যে Chart.js ব্যবহার করতে চাই। পূর্ববর্তী অ্যাঙ্গুলার 2 সংস্করণগুলিতে, আমি একটি 'চার্ট.লোডার.েটস' ব্যবহার করে এটি ভাল করে চলেছি:

export const { Chart } = require('chart.js');

তারপর কম্পোনেন্ট কোড আমি ঠিক

import { Chart } from './chart.loader';

তবে ক্লাইপ ০.০.০ এবং কৌণিক ৪ এ উন্নতি করার পরে আমি ত্রুটি পেয়েছি: "নাম 'প্রয়োজনীয়' খুঁজে পাচ্ছি না।

ত্রুটিটি পুনরুত্পাদন করতে:

ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve

আমার 'tsconfig.json' তে আমার আছে

"typeRoots": [
  "node_modules/@types"
],

এবং 'নোড_মডিউলগুলি /@tyype/node/index.d.ts' এ রয়েছে:

declare var require: NodeRequire;

তাই আমি বিভ্রান্ত

বিটিডাব্লু, আমি ক্রমাগত সতর্কতার মুখোমুখি হই:

[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)

যদিও আমি আমার '.angular-cli.json' এ "উপসর্গ": "" সেট করেছি। এটি কারণ হতে পারে কারণ 'কৌণিক-ক্লিপ.জসন' থেকে '.angular-cli.json' তে পরিবর্তিত হতে পারে?


সমস্যাটি আপনার tsconfig.json ফাইলের। : এখান সমাধান দেখুন stackoverflow.com/questions/31173738/...
IndyWill

@ ইন্ডিউইল ধন্যবাদ, আসলে এটি src / tsconfig.app.json এ থাকা উচিত। আপনি কি এই উত্তর হিসাবে লিখতে পারেন?
টমাস ওয়াং

ইলেক্ট্রন জন্য + + কৌণিক 2/4 দেখুন: stackoverflow.com/a/47364843/5248229
mihaa123

উত্তর:


232

সমস্যা ( টাইপস্ক্রিপ্টে ত্রুটিটি TS2304 পাওয়ার ক্ষেত্রে বর্ণিত : নাম 'প্রয়োজনীয়' খুঁজে পাচ্ছে না ) হ'ল নোডের জন্য টাইপ সংজ্ঞা ইনস্টল করা হয়নি।

একটি অভিক্ষিপ্ত জেনডের সাথে with @angular/cli 1.x, নির্দিষ্ট পদক্ষেপগুলি হওয়া উচিত:

পদক্ষেপ 1 :

@types/nodeনিম্নলিখিত যে কোনও একটি দিয়ে ইনস্টল করুন :

- npm install --save @types/node
- yarn add @types/node -D

পদক্ষেপ 2 : আপনার src / tsconfig.app.json ফাইল সম্পাদনা করুন এবং খালি জায়গায় নিম্নলিখিতটি যুক্ত করুন "types": [], যা ইতিমধ্যে সেখানে থাকা উচিত:

...
"types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...

আমি যদি কিছু মিস করি তবে একটি মন্তব্য লিখুন এবং আমি আমার উত্তরটি সম্পাদনা করব।


11
আমার পক্ষে ভাল কাজ হয়নি ... আমাকে কি অন্য কিছু ইনস্টল করতে হবে?

1
এছাড়াও আমার জন্য এটি কাজ করে না। এখানে বিবরণ: stackoverflow.com/questions/44421367/types-not-found
user3471528

49
দ্রষ্টব্য: আপনাকে ফোল্ডার সংযোজনের tsconfig.app.jsonঅধীনে পরিবর্তন করতে হবে , এটি মূল tsconfig- এ নেইsrc"types": ["node"]
ব্রুনোএলএম

11
আমার পক্ষেও কাজ করেনি। কেবল যুক্ত করার পরামর্শ দেওয়া অন্য উত্তরটি declare var require: any;আশ্চর্যজনকভাবে সাহায্য করেছিল।
পরিতোষ

আমি পদক্ষেপ 2 মিস করেছি। ধন্যবাদ !!
রবি স্মিথ

25

অবশেষে আমি এর জন্য সমাধান পেয়েছি, আমার অ্যাপ্লিকেশন মডিউল ফাইলটি পরীক্ষা করুন:

import { BrowserModule } from '@angular/platform-browser';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from '@angular/material';
import 'hammerjs';
import { ChartModule } from 'angular2-highcharts';
import * as highcharts from 'highcharts';
import { HighchartsStatic } from 'angular2-highcharts/dist/HighchartsService';

import { AppRouting } from './app.routing';
import { AppComponent } from './app.component';

declare var require: any;


export function highchartsFactory() {
      const hc = require('highcharts');
      const dd = require('highcharts/modules/drilldown');
      dd(hc);

      return hc;
}

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    AppRouting,
    BrowserAnimationsModule,
    MaterialModule,
    ChartModule
  ],
  providers: [{
      provide: HighchartsStatic,
      useFactory: highchartsFactory
    }],
  bootstrap: [AppComponent]
})
export class AppModule { }

declare var require: any;উপরের কোডে বিজ্ঞপ্তি ।


1
পলিফিল.স.টি. ফাইলে আমার এই সমস্যাটি ছিল, তবে আপনার "ঘোষিত বিভিন্ন প্রয়োজন: যে কোনও;" ঠিক কর. ধন্যবাদ
আন্দ্রে

18

অ্যাঙ্গুলার 7+ এ কাজ করবে


আমি একই সমস্যার মুখোমুখি ছিলাম, আমি যুক্ত করছি adding

"types": ["node"]

to tsconfig.json রুট ফোল্ডার।

এসআরসি ফোল্ডারের অধীনে আরও একটি tsconfig.app.json ছিল এবং আমি যুক্ত করে এটি সমাধান করেছি

"types": ["node"]

থেকে tsconfig.app.json ফাইল অধীনেcompilerOptions

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "types": ["node"]  ----------------------< added node to the array
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

14

আমার হিসাবে, ভিএসকোড এবং কৌণিক 5 ব্যবহার করে শুধুমাত্র tsconfig.app.json টাইপ করতে "নোড" যুক্ত করতে হয়েছিল। সংরক্ষণ করুন এবং সার্ভারটি পুনরায় চালু করুন।

{
    "compilerOptions": {
    ..
    "types": [
      "node"
    ]
  }
  ..
}

একটি কৌতূহল বিষয়, এই সমস্যাটি "প্রয়োজনীয় খুঁজে পাবে না" (টিএস-নোডের সাথে উত্তেজিত হওয়ার পরে ঘটে না


1
আমার জন্য কৌণিক 6 এ একটি কবজির মতো কাজ করেছেন।
পিক মিকেল

এই সমাধানটি আমার জন্য একটি কৌণিক 6 লাইব্রেরিতে কাজ করেছিল। যদিও আমি যোগ করতে "types": [ "node" ],হবে tsconfig.lib.json
Gus

এবং সার্ভার পুনরায় চালু করুন। আমার মঙ্গল, এটা সব বরাবর ছিল। কৌণিক 9. উপর কাজ করা 👍
অ্যান্ডারস


3

আমি যোগ করলাম

"types": [ 
   "node"
]

আমার tsconfig ফাইল এবং এটি আমার জন্য tsconfig.json ফাইল দেখতে কাজ করে worked

  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "es2015",
    "types": [ 
      "node",
      "underscore"
    ]
  },  

যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে আপনি এখনও কয়েকটি ব্যাখ্যামূলক বাক্য যুক্ত করার বিষয়টি বিবেচনা করতে পারেন কারণ এটি অন্যান্য ব্যবহারকারীর জন্য আপনার উত্তরটির মান বাড়িয়ে তোলে।
এমবিটি


0

আমি সরানো tsconfig.json আমার প্রকল্পটির পুনর্গঠন করতে ফাইলটিকে নতুন ফোল্ডারে করেছি।

সুতরাং এটি ভিতরে নোড_মডিউল / @ টাইপ ফোল্ডারের পথটি সমাধান করতে সক্ষম হয় নি typeRoots tsconfig.json এর বৈশিষ্ট্যের

সুতরাং থেকে পথ আপডেট করুন

"typeRoots": [
  "../node_modules/@types"
]

প্রতি

"typeRoots": [
  "../../node_modules/@types"
]

Tsconfig.json এর নতুন অবস্থান থেকে কেবল নোড_মডিউলগুলির পথটি সমাধান করা হয়েছে তা নিশ্চিত করার জন্য

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