এনপিএম: "এনপিএম লিঙ্ক" পরে মডিউল পাওয়া যায় না


93

আমি নোডজেএসের জন্য দুটি মডিউল বিকাশ করছি, প্রথমটির নামকরণ aligatorএবং দ্বিতীয়টি aligator-methods। দ্বিতীয়টি কাজ করা প্রথমটির উপর নির্ভর করে। আমি একই সাথে এই দুটি মডিউল বিকাশ করছি এবং আমি বিশ্বব্যাপী লিঙ্ক aligatorকরতে চাই যাতে এটি এনপিএম রেজিস্ট্রিতে যেমন ব্যবহার করতে পারি এবং আমি এটি বিশ্বব্যাপী ইনস্টল করেছি। এটি করার জন্য এনপিএম ডকুমেন্টেশন বলে যে আমাকে ব্যবহার করা দরকার npm linkতবে এটি কাজ করছে না।

package.jsonমডিউল ফাইল aligator:

{
  "name": "aligator",
  "version": "0.0.1",
  "description": "",
  "main": "index.js",
  "private": true,
  "directories": {
    "doc": "docs",
    "example": "examples",
    "test": "spec"
  },
  "scripts": {
    "test": "gulp jasmine"
  },
  "license": "MIT",
  "devDependencies": {
    "gulp": "^3.6.2",
    "gulp-jasmine": "^0.2.0",
    "gulp-jshint": "^1.6.1",
    "gulp-rename": "^1.2.0",
    "jasmine-node": "^1.14.3"
  },
  "dependencies": {
    "bluebird": "^1.2.4",
    "lodash": "^2.4.1",
    "mathjs": "^0.22.0"
  }
}

package.jsonমডিউল ফাইল aligator-methods:

{
 "name": "aligator-methods",
 "version": "0.0.1",
 "description": "",
 "main": "index.js",
 "private": true,
 "directories": {
   "doc": "docs",
   "example": "examples",
   "test": "jasmine"
 },
 "scripts": {
   "test": "gulp jasmine"
 },
 "author": "",
 "license": "MIT",
 "devDependencies": {
   "gulp": "^3.6.2",
   "gulp-jasmine": "^0.2.0",
   "gulp-jshint": "^1.6.1",
   "gulp-rename": "^1.2.0",
   "jasmine-node": "^1.14.3"
 },
 "dependencies": {
   "lodash": "^2.4.1",
   "mathjs": "^0.22.0",
   "aligator": "^0.0.1"
 }
}

সবার আগে আমি বিশ্বব্যাপী মডিউলটি সংযুক্ত করেছি:

$ cd ~/aligator
$ npm link
/usr/local/lib/node_modules/aligator -> /Users/roc/aligator

এটি যদি আমার ভুল না হয় তবে এটি আমার মডিউলটির একটি বিশ্বব্যাপী রেফারেন্স তৈরি করেছে aligatorএবং এখন আমি কম্পিউটারে যেখানেই চাই না কেন এই মডিউলটি ব্যবহার করতে পারি।

তারপরে আমি অন্য মডিউলে গিয়ে নির্ভরতা ইনস্টল করার চেষ্টা করেছি তবে এটি আমাকে এই আউটপুট দিয়েছে:

$ cd ~/aligator-methods
$ npm install
npm ERR! 404 404 Not Found: aligator
npm ERR! 404
npm ERR! 404 'aligator' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 It was specified as a dependency of 'aligator-methods'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/roc/aligator-methods
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.16
npm ERR! code E404
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/roc/aligator-methods/npm-debug.log
npm ERR! not ok code 0

এমনকি আমি এটির সাথে সরাসরি লিঙ্ক করার চেষ্টা করেছি:

$ cd ~/aligator-methods
$ npm link aligator
/Users/roc/aligator-methods/node_modules/aligator -> /usr/local/lib/node_modules/aligator -> /Users/roc/aligator

তবে এটিও কার্যকর হয়নি।

এটি কি ঘটতে পারে তা নিয়ে কোনও চিন্তাভাবনা? আমি কোথাও পড়েছি যে এটি আমার নোড এবং এনপিএম ইনস্টলিংয়ের সাথে কিছু করতে পারে কারণ এটি হোমব্রিউ দ্বারা তৈরি করা হয়েছিল এবং তাই মাঝে মাঝে আমার ব্যবহার করা প্রয়োজন sudo, এটি অসম্ভব বলে মনে হয় তবে আমি তাদের প্রস্তাব দিয়েছি এবং এটি কার্যকর হয়নি।


পোস্ট কোডটিতে, প্রথম মডিউলটির নাম বানান করা হয় aligtorএবং আপনি দ্বিতীয় মডিউলে এটি উল্লেখ করার চেষ্টা করেন aligator। এটি আপনার নির্ভরতা ক্র্যাশও করতে পারে।
ব্রুনো তোফফালো

@ ব্রুনো টফফোলিও হ্যাঁ, আপনি ঠিক বলেছেন, তবে এই ক্ষেত্রে এটি পোস্টে কেবল একটি ভুল বানান ছিল। আমি এটি সংশোধন করেছি, ধন্যবাদ।
রক

আমার কৃপণ জীবনের 4 ঘন্টা হারিয়ে গেছে ট্র্যাকিং ওয়েবপ্যাক কনফিগার: / আপনি আমার জীবন বাঁচিয়েছেন! +1
টম সার্ডু

8
বাহ আমি একই সমস্যা ছিল mainআমার এর package.json, আপনার ফিক্স সঙ্গে উত্তর আপডেট করার জন্য আপনাকে ধন্যবাদ!
ম্যাটিটিব

যদি আপনি উত্তরটি খুঁজে পেয়ে থাকেন তবে উত্তর হিসাবে পোস্ট করা এবং সেই প্রশ্নের সাথে সমাধান হিসাবে প্রশ্নটি সেট করা ভাল ধারণা হবে :)
আলবার্তো এস

উত্তর:


40

এনভিএম-এর কারণে আমি এই সমস্যার মধ্যে পড়েছিলাম, আমি নির্ভরতার জন্য নোডের একটি সংস্করণ এবং অন্যটি নির্ভরতার জন্য চালাচ্ছিলাম।


4
আপনি বা অন্য কেউ কোনও স্থানের সাথে লিঙ্ক করতে পারেন যেখানে সুযোগ দ্বারা এটি সমাধান করবেন?
কেভিন ড্যানিকোভস্কি

4
আমার ক্ষেত্রে আমার উভয় প্যাকেজগুলিতে 'এনভিএম ব্যবহার <VERSION>' চালানো দরকার, যেখানে উভয় প্যাকেজের জন্য ভার্সন একই ছিল।
লিনাক্সদান

34

package-lock.jsonপুনরায় চালানো মুছে ফেলা npm installআমার জন্য সমস্যাটি সমাধান করেছে resolved


4
এটি বর্তমান সমস্যার সমাধান করতে পারে তবে সম্ভবত আরও কিছু বৃহত্তর তৈরি করতে পারে। লক ফাইলগুলি একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে এবং মুছে ফেলা উচিত নয় । সংক্ষেপে: এটি এমন যে প্রক্রিয়াগুলি যা নিশ্চিত করে যে প্রতিটি দল সদস্যই একই রকম নির্ভরতা ব্যবহার করছে। স্ট্যাক ওভারফ্লোতে আপনি এই উত্তরটি চেকআউট করতে পারেন: স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ৫৪১২৪০৩৩ /… তবে ডকসটিতে এটির কারণ রয়েছে বলে পড়া পড়াও এটি একটি ভাল শুরু। docs.npmjs.com/files/package-lock.json
এসকিউইজার্স

4
আমি এই উত্তরটি ধরে রাখতে রাজি হব যদি এমন কোনও নোট উপস্থিত থাকে যেটি ইঙ্গিত করে যে এটি অবশ্যই শেষ অবলম্বন হওয়া উচিত। @ এসকিউইজারগুলি যেমন উল্লেখ করেছে, লক ফাইলগুলি নির্ভরতা সংস্করণগুলি বজায় রাখতে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। সম্ভবত, নির্ভরতা সংস্করণে লক ডাউন হয়েছে package.jsonপাশাপাশি, কিন্তু অধিকাংশ সময় আমি দেখতে যে package-lock.jsonবা yarn.lockএই জন্য রক্ষী হয়েছে।
ফ্রস্টিডগ

33

সমস্যাটি হ'ল এর mainসম্পত্তিটি package.jsonএকটি বিদ্যমান নেই এমন ফাইলের দিকে ইঙ্গিত করছে। দেখে মনে হচ্ছে সমস্যাটি একাধিক কারণে ঘটতে পারে তাই অন্যান্য উত্তরগুলি একবার দেখে নিবেন নিশ্চিত হন।


4
ওএমজি আমি এই 50 বার upvote করতে এবং প্রতিটি উর্ধ্বগতির জন্য একবার নিজের ফেসপামটি করতে চাই।
বেন

প্রকল্পটি প্রয়োজন তা জানতে আকর্ষণীয় main। বেশিরভাগ ক্ষেত্রে আমি এটি না করেই করেছি, তবে অনুমান করুন যে এটি এই ছোটখাটো সমস্যাগুলি তৈরি করে।
cst1992

ভাল লাগছে! আমি আপনার উত্তরটি দেখেছি এবং তাত্ক্ষণিকভাবে জানলাম এটি আমার সমস্যা :)।
স্ল্যাশপ্যাচ

12

আপনি যখন ডিরেক্টরিটি প্রথম চালনা npm linkকরেন aligator, আপনি আপনার গ্লোবাল নোড_মডিউলগুলি ডিরেক্টরি থেকে একটি লিঙ্ক তৈরি করেন aligator। অতঃপর যখন আপনি চালাতে npm link aligatorথেকে aligator-methodsডিরেক্টরির, আপনি সংযোগ আছে aligatorআপনার স্থানীয়ভাবে ইনস্টল node_modules থেকে মূল উৎস (উপরে আপনার উদাহরণে আউটপুট শো হিসাবে)। এটি হয়ে গেলে, এটি ইতিমধ্যে "ইনস্টলড" হওয়ার পরে আর ইনস্টল করার প্রয়োজন হবে না। npm link aligatorকমান্ডটি চালানোর পরে আপনি কোন ত্রুটিগুলি দেখছেন ?

আপনি যদি কেবল কোনও স্থানীয় ডিরেক্টরি থেকে নির্ভরতা ইনস্টল করতে চান তবে আপনি npm installপরিবর্তে এটি ব্যবহার করে দেখতে পারেন। উদাহরণ স্বরূপ:

$ সিডি
al / অ্যালিগেটর -পদ্ধতিগুলি pm এনপিএম ইনস্টল ../aligator


6
সমাধান করার জন্য আপনার প্রচেষ্টার জন্য ধন্যবাদ আমার npm linkকোনও ত্রুটি দেখানো হয়নি। আমার ক্ষেত্রে সমস্যাটি হ'ল সম্পত্তিটি mainএকটি অ-বিদ্যমান ফাইলের দিকে ইঙ্গিত করছিল। আমার কথা npm installঠিক আছে, আমার সবকিছু ইনস্টল করার দরকার npm linkনেই। তার জন্য ধন্যবাদ আমি এটি জানতাম না।
রক

4
আমারও একই সমস্যা হচ্ছে, তবে আমি কোনও সমাধান খুঁজে পেলাম না ... যদি আমি প্রতিটি সংযুক্ত প্যাকেজ স্বতন্ত্রভাবে চেষ্টা করার চেষ্টা করি তবে এটি একটি কাজ করে ... যা কাজ করে না কেবল সেটাই বলে: "ত্রুটি: মডিউলটির মডিউলটি খুঁজে পাই না -আই-স্রেফ লিঙ্কযুক্ত '"।
মাইকেল 5 ই

@ মিশেল দেখে মনে হচ্ছে আমার কাছে গভীর ডিরেক্টরিতে একটি মডিউল রয়েছে যা "গতিশীল" চেষ্টা করে যাচ্ছিল যে মডিউলটি ব্যর্থ হচ্ছে (যেমন স্ট্রিংয়ের নামটি মডিউলটিতে পাস করা হয়েছিল), সুতরাং আমাকে এনপিএম করতে হয়েছিল গভীর ডিরেক্টরিতে লিঙ্ক।
মাইকেল

4

আমার ইস্যুটি শেষ হয়েছিল যে রেপো এ ব্যবহার করছিল npmএবং রেপো বি ব্যবহার করছিল yarn, সুতরাং রেপো এ এর yarn linkমাধ্যমে টানতে আমাকে রেপো বিতে চালানো দরকার Inpm link package-name


আপনি, স্যার, আমার দিন তৈরি! ধন্যবাদ
এলেক

3

আমার জন্য যা কাজ করেছে তা হ'ল:

  1. node_modulesনির্ভরতা এবং গ্রাহক মডিউল উভয়ই মুছুন ।
  2. চালান npm unlink --no-save [dependency-module]
  3. এনপিএম-লিঙ্ক অনুযায়ী 2-লিঙ্ক কমান্ডের সাথে পুনরায় লিঙ্ক করুন

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

অতিরিক্তভাবে, একটি এনপিএম প্যাক কমান্ড রয়েছে যা আপনাকে আপনার অপ্রকাশিত মডিউলগুলি পরীক্ষা করতে সহায়তা করতে পারে যদিও এটি যথেষ্ট জোরালো নয়।

এনপিএম-প্যাক


2

এই সমস্যাটির আমার সংস্করণটির জন্য ঠিক করুন; এনপিএম v5.3.0 এ, আমি node_modulesরেপো থেকে অপসারণ করেছি আমি অন্য প্রকল্পে লিঙ্ক করছি।

আমি জানতে পেরেছি যে এনপিএম ভি 3 এর পরে তারা কাঠামোটাকে যতটা সম্ভব সমতল করতে সমস্ত নোড_মডিউলগুলি একটি ডিরেক্টরিতে (আপনার প্রকল্পের একটি) মধ্যে রাখার চেষ্টা করে ( http://codetunnel.io/npm-5-changes-to-npm -লিঙ্ক / )।


1

আমার জন্য এটি তখন ঘটেছিল যখন আমি আমার স্থানীয় প্যাকেজের সংস্করণ সংখ্যাটি ০.০.০ থেকে ০.০.১ এ হ্রাস করেছি। এবং যে প্রকল্পগুলিতে আমি এই প্যাকেজটির সাথে সংযুক্ত করেছি সেখানে আমি এখনও উচ্চতর সংস্করণ নম্বরটি ব্যবহার করছি। package.jsonএটির মধ্যে নির্ভরতা আপডেট করা।


0

পিয়ারডেপেন্ডেন্সি ব্যবহার করার সময়

আমি দুটি প্যাকেজ বিকাশ করছি stejs, এবং stejs-loader। একটি হিসাবে stejs-loaderআছে । যখন আমি দৌড়েছিলাম এবং আমার প্রকল্পে আমি একটি ত্রুটি পেয়েছিলাম যা খুঁজে পেল না । ডিরেক্টরিতে চালিয়ে এটি ঠিক করেছি ।stejspeerDependencynpm link stejs-loadernpm link stejsstejs-loaderstejsnpm link stejsstejs-loader


0

Tsconfig মডিউল সমাধান পরীক্ষা করুন Check

আমার মত, আপনি tsconfig পরিবর্তন ঘটেছে moduleথেকে es5থেকে esnextবা কিছু, তারপর moduleResolutionডিফল্ট পরিবর্তিত হতে পারে।

ছাড়া moduleResolution"নোড" এ সেট হচ্ছে, টাইপ করা বিষয় node_modules প্যাকেজ সমাধান করবে না।

ডিফল্ট মান কীসের মানের উপর নির্ভর করে , যার ডিফল্ট পরিবর্তে নির্ভর করে - তবে সম্ভবত এটি স্পষ্টভাবে "নোড" এ সেট করে সে সম্পর্কে আপনি কম্পাইলার বিকল্প পৃষ্ঠাতে পড়তে পারেন ।moduletarget

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