নোড.জেস থিসিং ওয়ার্কফ্লো ব্যবহার করার সময় আমি কীভাবে দ্রুপালকে সেগমেন্টেশন ত্রুটি বাড়াতে বাধা দেব?


33

লক্ষণ:

কিছু ড্রাশ কমান্ড ব্যর্থ হয়; কিছু দ্রুপাল পৃষ্ঠাগুলি ফাঁকা।
ব্যর্থতাযুক্ত ড্রশ কমান্ডগুলি "বিভাগকরণ ত্রুটি: 11"
প্রতিবেদন করে যা অ্যাপাচি লগ (যেমন এমএএমপিতে পিএইচপি-ত্রুটি.লগ) এছাড়াও একই ত্রুটি দেখায়।

পটভূমি:

আপনার থিমের এসএএসএস ইত্যাদি সংকলন করার জন্য - আপনি যদি কোনও ঝাঁকুনি বা গ্রান্ট ওয়ার্কফ্লো ব্যবহার করেন - আপনি ড্রাফ কমান্ডগুলি ডিগ্রি পৃষ্ঠাগুলি ফাঁকা (ডাব্লুএসডি) হিসাবে পরিবেশন করার সাথে সাথে অ্যাপাচি যেমন একটি সেগমেন্টেশন ফল্ট 11 নিক্ষেপ করতে পারেন এমন কোনও সমস্যার মধ্যে পড়তে পারেন।

সম্ভাব্য কারণ

এর কারণ আপনার gruntবা gulpকর্মপ্রবাহের পরিবেশের ফাইলগুলি node_modulesভুলভাবে দ্রুপাল নিজেই drush cache-clear allউদাহরণস্বরূপ দ্বি-পণ্য হিসাবে নিবন্ধিত হয়েছে । এই কয়েক .js ফাইল রয়েছে এবং দ্রুপাল এগুলি পরিচালনা করতে পারে না ... এটি সম্ভবত একটি পিসিআরই রেজেক্স যা মূল কারণ কারণ এটি অন্য কোথাও পরিচিত। যাইহোক ...

এটা সবসময় হয় না

কিছু মডিউল (উদাহরণস্বরূপ ব্রাউজার সিঙ্ক হিসাবে) এই ত্রুটিটিকে নোড.জেএস স্টাইল হিসাবে চিহ্নিত করে (যেমন গল্প বা গ্রান্ট) ওয়ার্কফ্লো এইভাবে ব্যর্থ হওয়ার আগে পুরোপুরি কাজ করতে পারে কিনা তা পরিষ্কার নয়।


আমি ব্রাউজার সিঙ্ক নিশ্চিত করতে পারি & gulp-imagemin আমার জন্যও ঝামেলাজনক ছিল ome নেস্টেড ফোল্ডারে সামগ্রিকভাবে ইনফো ফাইলগুলি সমস্যা।
পলিক্লিক

এফওয়াইআই: আমি জুরউব ফাউন্ডেশনকে দ্রুপালের সাথে ব্যবহার করে একই সমস্যাটি পেয়েছি, সমস্যাটি দেখুন দ্রুপাল.আর
নোড /

আমরা ড্রুপাল কোর এ এটি ঠিক করার চেষ্টা করছি। এই সমস্যা থেকে আপনার মতামত এবং পরীক্ষা প্যাচ যোগ drupal.org/node/2329453
corbacho

একটা প্যাচ সঙ্গে Drupal এর 7 এর জন্য একটি বিষয় যে সমাধান সমস্যাঃ drupal.org/node/619542 নেই একটি সম্পর্কিত (কম তীব্র) Drupal এর 8 ইস্যু: drupal.org/node/2329453
malcomio

এটি আমাদের জন্য অনেকগুলি ড্রশ কমান্ড ব্যর্থ করেছিল (উদাহরণস্বরূপ drush cc all), বিভ্রান্তিকে আরও বাড়িয়ে তোলে ।
কোল কেটলার

উত্তর:


25

আপনি যে সমাধানটি সন্ধান করছেন এটি এখানে। আরও অনেক মার্জিত এবং কম কাজ:

"scripts": {
  "postinstall": "find node_modules/ -name '*.info' -type f -delete"
}

উপরে @ iamcarico এর উত্তরের উপর সামান্য পরিবর্তন al

দ্রষ্টব্য: আপনার কেবলমাত্র নিম্নলিখিত লিখিত সামগ্রী সহ একটি .npmrc প্রয়োজন হতে পারে:

unsafe-perm = true

এটি YML ফাইলগুলির সাথেও ঘটেছিল বলে মনে হয় :(
টম রোগেরো

7

সুতরাং, আমার কাছে আরও কিছু মার্জিত সমাধান রয়েছে, এটি এনএমপি ইনস্টলের পরে .info ফাইলগুলি সরিয়ে ফেলবে। কারও দরকার নেই, তাই এটি নিরাপদ হওয়া উচিত।

আপনার প্যাকেজ.জসনের শেষে নিম্নলিখিতটি যুক্ত করুন:

"scripts": {
  "postinstall": "find node_modules/ -name \"*.info\" -type f -delete"
}

প্যাকেজ.জসন ফাইলগুলি সংশোধন করার ধারণাটি এতটা ভাল নয়, যেমনটি আমি এখানে ব্যাখ্যা করেছি: drupal.org/node/2309023#comment-9531611
ডেভিড হেরন

5

এটি আমার পক্ষে কাজ করে:

( এই থ্রেডের কারণ চিহ্নিত করার জন্য @ জর্জেজিকে অনেক ধন্যবাদ সহ আমি কি ভেবেছিলাম যে বিষয়টি এখানে আরও সাধারণ শিরোনামের প্রাপ্য।

  1. সরান gulpfile.jsএবং package.jsonনতুন "লুকানো" ডিরেক্টরিতে.npm
  2. cd .npmএবং npm install( node_modulesঅবশ্যই থিমের মূল স্তরের ডিরেক্টরি মুছে ফেলার পরে )
  3. gulpfile.jsউত্স এবং গন্তব্য ফাইল পাথের জন্য বেস ডিরেক্টরি সম্পাদনা করুন। স্নিপেট বেলোতে "../" পাথগুলিতে সংযোজন করা হয়েছিল
  4. পরিবর্তে, ডিরেক্টরি gulpথেকে আদেশ কমান্ড.npm

আইহিট থিমের জন্য ডিরেক্টরি কাঠামোর উদাহরণ

. ├── .editorconfig ├── .git │   ├── HEAD │   ├── ... ├── .gitignore ├── .jshintrc ├── .npm │   ├── gulpfile.js │   ├── node_modules │   └── package.json ├── assets │   ├── images │   ├── js │   └── sass ├── css │   ├── ihit.hacks.css │   └── ihit.styles.css ├── ihit.info ├── ihit.sublime-project ├── ihit.sublime-workspace ├── images │   ├── logo.png │   ├── search-icon.png │   └── sprite.png ├── js │   └── ihit.behaviors.js ├── php │   ├── ihit_breadcrumb.inc │   ├── ihit_form_search_form_alter.inc │   ├── ihit_menu_link.inc │   ├── ihit_menu_tree.inc │   ├── ihit_preprocess_html.inc │   ├── ihit_preprocess_region.inc │   └── ihit_process_page.inc ├── research │   └── Refills ├── screenshot.png ├── template.php └── templates ├── html.tpl.php ├── node--image_gallery.tpl.php ├── node.tpl.php └── page.tpl.php

Gulpfile.js এর প্রধান

// project-specific var project = { path: { sass: { source: '../assets/sass/**/*.scss', css_dest: '../css' }, // sass . . .


এই ছিল টিকিট!
jsheffers

3

আপনি ড্রুপাল সাইটের মূলটিতে আপনার কর্মপ্রবাহের সরঞ্জামগুলি ইনস্টল করে এগুলি এড়াতে পারবেন। এটি কোনও শীর্ষ স্তরের node_modulesফোল্ডারটি স্ক্যান করবে না ।

রুট-লেভেলে ইনস্টল করার অন্যান্য সুবিধাও রয়েছে, যেমন আপনাকে পুরো প্রকল্পটি অভিন্ন ফ্যাশনে লিঙ্ক দেওয়ার অনুমতি দেয় (আপনার কাস্টম মডিউলগুলি, বৈশিষ্ট্যগুলি এবং থিমগুলি এই রুট-স্তরের কনফিগারেশনটি ভাগ করতে পারে)। আপনাকে গ্রুপ এবং সাব ডিরেক্টরিতে sites/all/modulesবিভক্ত করা হয়েছে , আপনি সহজেই অবদান এবং অন্যান্য বিক্রেতাদের ফোল্ডারগুলিকে উপেক্ষা করতে পারেন।contribcustom


আমরা আপনার মন্তব্যের আগে .npm ইনস্টলেশন ফোল্ডার কৌশলটি অনুসরণ করেছি। তারপরে আমরা গুল্পে স্যুইচ করেছিলাম। gulp-eslint ফাইল ট্র্যাকিং এবং আবদ্ধ করার জন্য কোনও প্যারেন্ট ডিরেক্টরিতে নেভিগেট পরিচালনা করে না। সুতরাং আমরা আমাদের বিল্ড স্ক্রিপ্টগুলি (এবং নোড_মডিউলগুলি) আমাদের সাইটের ডোকরোটের পাশে স্থানান্তরিত করেছি এবং সবকিছু এখন পুরোপুরি কার্যকরভাবে কাজ করে। এই উত্তরের জন্য ধন্যবাদ!
এরিক স্টেইনবোন

1

এটি এখনও একটি সমস্যা বলে মনে হচ্ছে এবং আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: Segmentation fault: 11দৌড়ানোর পরে npm install

আমি ব্যবহার gulpসংস্করণ 3.8.11এবং nodeসংস্করণের সাথে 0.12

আমি সাধারণত (এই ক্ষেত্রেও) auroraবেস থিম হিসাবে ব্যবহার করি এবং নিজস্ব package.jsonএবং gulp.jsফাইল ব্যবহার করি । আমার package.jsonফাইলে আইমাকারিকোর পোস্টইনস্টল স্ক্রিপ্ট রয়েছে:

  "scripts": {
    "postinstall": "find node_modules -type f -name '*.info' | xargs rm;"
  }

হুম, এই মুহুর্তে আমি কেবল স্বীকার করেছি যে পোস্টইনস্টল স্ক্রিপ্টটি কিছুটা আলাদা যা আমার সেগমেন্টেশন ত্রুটি ত্রুটির কারণ হতে পারে। যাই হোক।

আমি যা করেছি তা হ'ল আমি node_modulesআমার থিমের সাথে ডিরেক্টরিটি সরিয়েছি rm -rf ./node_modules। ড্রশ দিয়ে ক্যাশে সাফ করলেন drush cc all। তারপরে আমি আইয়েনের উপরোক্ত নির্দেশনাগুলি অনুসরণ করেছি ... না পর্যন্ত। 3 (3 অন্তর্ভুক্ত না), দৌড়ে find node_modules -type f -name '*.info' | xargs rm;ভিতরে .npmফোল্ডার এবং সরানো gulp.js, package.jsonএবং node_modulesমূল থিম ফোল্ডারের ফোল্ডার এক স্তর উপরে। আমি gulpসেগমেন্টেশন ত্রুটিগুলি ছাড়াই চলতে পারি এবং browsersyncপ্রত্যাশার মতো কাজও করতে পারি ।



-1

আমার সমাধান অতীতে ছিল "উদাহরণস্বরূপ" .npm "এর মতো কোনও লুকানো ফোল্ডারের নোড স্টাফের ভিতরে নিয়ে যাওয়া।

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