pm npm বিল্ড - প্যাকেজ.জসনে "বিল্ড" নামের স্ক্রিপ্টটি চালায় না


138

একটি নতুন মডিউলের জন্য আমি npm buildগাল্প / গ্রান্ট / অন্যান্য বিশেষায়িত বিল্ড সরঞ্জামগুলি ছাড়াই ব্যবহার করার চেষ্টা করছি ।

"scripts": {
  "build": "node build.js"
},

আমার build.js সহজভাবে

console.log('Hello')

যাইহোক, চলমান

npm build

0-এর স্ট্যাটাস সহ কোনও কিছুই প্রিন্ট না করে কেবল প্রস্থান করা হয়।

চলমান:

npm install

সমস্ত সাধারণ জিনিসও করে, তবে বিল্ড.জেএসও চালায় না।

কীভাবে আমি আমার বিল্ড স্ক্রিপ্টটি এনপিএম চালাতে পারি?

সম্পাদনা করুন: এমনকি সাধারণ ব্যাশ আদেশগুলিও কাজ করে বলে মনে হয় না, যেমন

"scripts": {
    "build": "touch TESTFILE"
},

এই নামটি দিয়ে কোনও ফাইল তৈরি করে না।


কর্মক্ষেত্র: installপরিবর্তে ব্যবহার করুন।
জাজ

এটি মূলত এনপিএমের একটি বিশাল এবং অকালীন বিরক্তি এবং আমি সুতা ব্যবহার করা চালিয়ে যাওয়ার অন্যতম কারণ। সুতোর সাহায্যে আমি যে কোনও কাস্টম স্ক্রিপ্টটি চালাতে পারি ঠিক যেমন প্যারামিটার অর্থাৎ সুতার স্টোরিবুক স্টোরিবুক স্ক্রিপ্টটি চালাবে। এনপিএম-এ আমাকে এনপিএম রান স্টোরিবুক করতে হবে এবং তারপরে, আমি যদি এনপিএমের মাধ্যমে কোনও পরামিতিগুলি পাস করতে চাই তবে এটির প্রয়োজন আগে - সুতরাং সুতা স্টোরিবুকের সাথে তুলনা করার সময় - এনপিপি রান স্টোরিবুক - --ci, এটা আমার কাছে বুদ্ধিমান
ইমোব

উত্তর:


243

দুর্ভাগ্যক্রমে ডক্সে বর্ণিত হিসাবে npm buildইতিমধ্যে একটি অভ্যন্তরীণ কমান্ড :

এটি এনএমপি লিঙ্ক এবং এনপিএম ইনস্টল দ্বারা ডাকা প্লাম্বিং কমান্ড। এটি সাধারণত সরাসরি বলা উচিত নয়।

কারণ এই আদেশটি ইতিমধ্যে বিদ্যমান, এটি সর্বদা আপনার উপর ছায়াযুক্ত "build": "node build.js"

আপনার নিজস্ব স্ক্রিপ্টটি চালানোর জন্য সম্পূর্ণরূপে যোগ্য উপায়টি এর সাথে run-scriptবা এরrun সাথে রয়েছে :

$ npm run build

npm startএবং অন্যেরা হ'ল হ্যান্ড-হ্যান্ড ওয়ে, তবে কেবলমাত্র একটি বিকল্প যখন কোনও বিদ্যমান এনপিএম কমান্ড এটি ছায়া দেয় না, যেমন npm buildকরে।


npm buildউত্তরোত্তর জন্য (যেমন অন্যরা উল্লেখ করেছেন) নোড-জিপ ব্যবহার করে নেটিভ সি / সি ++ নোড অ্যাডনগুলি তৈরি করতে এনপিএম দ্বারা ব্যবহৃত হয় । এটি ভালভাবে নথিভুক্ত করা হয়নি কারণ সাধারণত এটি স্বয়ংক্রিয়ভাবে ঘটে থাকে, তবে আপনি যদি আগ্রহী হন তবে উত্স কোডটি এখানে


15
তাহলে কি করে npm build ? আমি যতদূর দেখতে পাচ্ছি এটি সমস্ত ফাইল সম্পূর্ণ অপরিবর্তিত রেখে দিয়েছে ...
qntm

2
কিছু প্যাকেজগুলির একটি বিল্ড প্রক্রিয়া প্রয়োজন। আপনি যখন চলছেন npm installএবং এনএমপি যখন প্যাকেজটি সন্ধান করে যার সি / সি ++ বাইন্ডিং রয়েছে বা সাধারণত স্টেথের জন্য নোড-জিপ দরকার হয় তবে এটি শুরু হয় npm build। আপনি কেবলমাত্র চালিয়ে এই প্যাকেজগুলি পুনর্নির্মাণ করতে পারেন npm build
জাকুব মিজিওয়েক

4
অভ্যন্তরীণ কমান্ড নতুন নামকরণ করা উচিত _buildএবং npm buildএকটি শর্টকাট মত হতে shuould npm startএবংnpm test
Pawel

1
আমি বুঝতে পারি যে npm buildআমার স্ক্রিপ্টটি কল করবে না এবং এটি কোনও প্যাকেজের সংকলিত উপাদানগুলি তৈরি করতে ব্যবহৃত হয়েছে। এটি এখনও কীভাবে হয় তা সম্পর্কে আমি নিশ্চিত নই: এটি কোন ফাইলগুলির সন্ধান করে?
আয়েদান

1
যদি আমি নিজেই কোনও প্যাকেজ লিখি তবে তা এখনও জেনে রাখা ভাল, npm buildঅর্থ সহ কী করতে হবে ...
ফ্রাঙ্ক নোক

20

"বিল্ড ইন" নামক স্ক্রিপ্টটি কোনওভাবেই package.jsonবিশেষ নয়। এটি চালানোর একমাত্র উপায় কল করা:

npm run-script build

কিছু নাম রয়েছে যা এনএমপি দ্বারা স্বয়ংক্রিয়ভাবে ডাকা হয় , তবে "বিল্ড" এর মধ্যে একটিও নয়। সম্পূর্ণ তালিকাটি হ'ল:

  • prepublish, publish,postpublish
  • preinstall, install,postinstall
  • preuninstall, uninstall,postuninstall
  • preversion, version,postversion
  • pretest, test,posttest
  • prestop, stop,poststop
  • prestart, start,poststart
  • prerestart, restart,postrestart
  • preCUSTOMএবং postCUSTOMকাস্টম স্ক্রিপ্ট নামের জন্য।

4

ঠিক আছে, নিজের তৈরিতে এটি চালাতে, ব্যবহার করুন:

npm run-script build

3

npm run buildকিছু মুদ্রণ না করায় আমার সমস্যা ছিল । npm run build --verboseআমার প্রয়োজনীয় আউটপুটটি ব্যবহার করে শেষ হয়েছে ।


2

এনপিএম বিল্ড আশা করে

এর মূলে প্যাকেজ.জসন ফাইল যুক্ত একটি ফোল্ডার

ক্লাসিক এনপিএম শুরুর মতো আপনার প্যাকেজ.জসনে এনপিএম স্ক্রিপ্টগুলি ব্যবহার করার চেষ্টা করুন


এর অর্থ কী তা হ'ল এটি npm build .কাজ করা উচিত এবং আমার ক্ষেত্রে এনপিএম আমার "প্যাকেজ.জসন" -তে "বিল্ড" স্ক্রিপ্ট কার্যকর করে যা আমি প্রত্যাশা করেছিলাম।
এরহুং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.