Less.js: لا يتم تحديث الواردات عند إعادة التحويل البرمجي عبر نفس الكائن الأقل (؟)

تم إنشاؤها على ٧ مارس ٢٠١٨  ·  19تعليقات  ·  مصدر: less/less.js

تقرير الشوائب
أكتب أداة ترجمة لمشروعي ، فهي تعتمد بشكل أقل.

مجلد نمط مشروعي والملفات المفضلة

- styles
   _utils.less
   index.less

ومحتوى index.less هو

<strong i="12">@import</strong> "./utils"

أستخدم عددًا أقل من واجهات برمجة التطبيقات لتجميع الملفات الأقل مثل

let less=require('less');
//....
less.render(indexContent,options,(err,result)=>{
       console.log(result.css)
});

عندما أقوم بتغيير محتوى _utils.less ، سيتم تنفيذ الكود أعلاه تلقائيًا

ولكن منذ 3.0.x ، عندما أقوم بتغيير محتوى _utils.less ، فإن result.css هو نتيجة المرة الأولى ، مهما تغير عدد المرات.

لكن 2.7.x ما يرام، وعندما أقوم بتغيير _utils.less المحتوى، و result.css تغيرت أيضا.

bug high priority research needed up-for-grabs

التعليق الأكثر فائدة

في بيئة العقدة ، امسح يدويًا ملف ذاكرة التخزين المؤقت الأقل ترجمة:

const less = require('less');
const fileManagers = less.environment && less.environment.fileManagers || [];
fileManagers.forEach(fileManager => {
     if (fileManager.contents) {
               fileManager.contents = {};
     }
});

ال 19 كومينتر

تبدو مشابهة لـ https://github.com/stevelacy/gulp-less/issues/283.
أعتقد أنه في حالات "المراقبة التلقائية" هذه هو نفس الكائن الأقل المستخدم لتجميع كل تحديث ، أليس كذلك؟ ثم أعتقد أنه شيء مع عدم إعادة تعيين بعض ذاكرة التخزين المؤقت للواردات بين مكالمات مختلفة render أو إلى حد ما من هذا القبيل.

@ سبع مراحل - كحد أقصى نعم ، استخدم نفس الكائن الأقل لتجميع كل تحديث.
أنا لا أستخدم أداة gulp-less ، فأنا أستخدم واجهة برمجة أقل بشكل مباشر.
يبدو أنه ذاكرة تخزين مؤقت أقل للنتيجة ولا يتم تحديثها بشكل صحيح

لذا فإن الحل السريع (حتى يتم اكتشاف الخطأ) في حالتك سيكون في:

require('less').render(indexContent,options,(err,result)=>{
       console.log(result.css)
});

نعم ، يبدو أن المشكلة تكمن في هذا الالتزام حيث يتم التلاعب بشجرة الاستدعاء بناءً على الحجج https://github.com/less/less.js/commit/a48c24c4dd3c13e00a20ece80323768496a96b36#diff -a6b31db4e862654ae597161e441689bb

يبدو أن القضية تكمن في هذا الالتزام ...

حسنًا ، بصراحة ، لا يمكنني رؤية أي شيء قد يؤثر على الواردات ...

في بيئة العقدة ، امسح يدويًا ملف ذاكرة التخزين المؤقت الأقل ترجمة:

const less = require('less');
const fileManagers = less.environment && less.environment.fileManagers || [];
fileManagers.forEach(fileManager => {
     if (fileManager.contents) {
               fileManager.contents = {};
     }
});

شكرًا tiodot يبدو أنه يعمل حتى الآن ... ولكن نأمل أن نحصل على طريقة "أنظف" قريبًا!

قد يكون له علاقة بهذه الأسطر المضافة لـ 3.0. https://github.com/less/less.js/blob/master/lib/less/tree/mixin-definition.js#L9

حاول إزالة الأمر if / else المحدد من عبارة else فقط ومعرفة ما إذا كانت المشكلة لا تزال قائمة. إذا لم يحدث ذلك ، فقد تحتاج إلى إزالة هذا التحسين. ومع ذلك ، ما سيكون أكثر مثالية هو مسح مدير الملفات أو أي ذاكرة تخزين مؤقت داخلية لكل استدعاء تحليل / تقديم جديد.

أتحقق فقط من وجود أي تحديثات لهذه المشكلة؟
تحصل gulp-less على عدد قليل جدًا من المطورين الذين يصلون إلى هذا الحد.

لقد أجريت محاولة أخرى قبل بضع ساعات ويبدو أنها تعمل بشكل جيد (بدون تصحيح). اي شخص اخر؟

  "dependencies": {
    "browser-sync": "^2.24.4",
    "gulp": "^4.0.0",
    "gulp-autoprefixer": "^5.0.0",
    "gulp-clean-css": "^3.9.4",
    "gulp-hb": "^7.0.1",
    "gulp-less": "^4.0.0",
    "gulp-load-plugins": "^1.5.0",
    "gulp-rename": "^1.2.2"
  },
  "optionalDependencies": {
    "less": "^3.0.4"
  }

لدي نفس المشكلة التي تم وصفها من خلال ترقية xinglie من

يبدو أن الحل البديل المقدم من tiodot لا يعمل بالنسبة لي (تمت المحاولة: [email protected] و [email protected]).
أيضًا استخدام الحل البديل require('less').render() المقدم من @ seven-stage-max لم ينجح في تنفيذ الحيلة :(
هل من المحتمل أن يكون هناك المزيد من الاقتراحات؟ :)

تتأثر أيضًا بهذا :(

مرحبًا ، على الرغم من أنني لست متأكدًا مما فعلته بشكل مختلف ، فإن الحل البديل tiodot المقدم يعمل معي الآن!
لقد حاولت مرة أخرى ويجب أن أكون قد ارتكبت خطأ في مكان ما في التعليمات البرمجية.
(باستخدام [email protected]).
شكرا tiodot !

شكرا tiodot

tiodot @ hawkerboy7TigersWay هل حل هذا الفرع القضية؟ إذا كان الأمر كذلك ، فسوف أقوم بإجراء علاقات عامة - يرجى التحقق من ذلك - https://github.com/matthew-dean/less.js/commits/cache-modified

لقد تحقق للتو من مشروعين مختلفين بوضوح ، وعلق على tiodot التصحيح الرائع داخل package.json ، ويبدو أنه يعمل بشكل مثالي !!

  "optionalDependencies": {
    "less": "github:matthew-dean/less.js#cache-modified"
  },

@ ماثيو دين يعمل بالنسبة لي!

@ ماثيو دين نعم لقد حل المشكلة! العلاقات العامة للإنقاذ !! :)

tiodot @ hawkerboy7TigersWay بارد، والشيء الجميل هو، يجب عليك الحصول على أسرع قليلا أقل ترجمة مع مخبأ الحارة (ميزة 3.X)، لذلك فمن الأفضل أن يكون ذلك الثابتة. وإلا كنت سأقترح إخراجها. سوف تفعل العلاقات العامة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات