Language-tools: svelte (css-syntax-error) عند استخدام الوسائط المخصصة postcss-preset-env

تم إنشاؤها على ٢ سبتمبر ٢٠٢٠  ·  8تعليقات  ·  مصدر: sveltejs/language-tools

لإعادة إنتاج
يمكنك استخدام الريبو الخاص بي لإعادة إنتاجه https://github.com/shamsartem/dbudget
تحقق من default.svelte عن الأخطاء.

بدلا من ذلك:

  1. أضف المكون الإضافي postcss-preset-env إلى rollup.config.js وإلى postcss.config.js بإعداد {stage: 0}
  2. أضف eg @ custom-media --t (width> = 768px) ؛ في App.svelte داخل علامة النمط مع lang = "postcss"
  3. حاول استخدامmedia (--t) في App.svelte - ينبغي لها أن تعمل وليس هناك خطأ واضح
  4. حاول استخدامmedia (--t) في بعض مكون آخر - فإنه يدل على خطأ ولكن يبني ويعمل بشكل صحيح

سلوك متوقع
لا ينبغي أن يكون هناك خطأ في هذه الحالة

النظام (يرجى استكمال المعلومات التالية):

  • نظام التشغيل: مانجارو
  • IDE: VSCode
  • المكون الإضافي / الحزمة: "Svelte for VSCode"
question

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

لقد وجدت حلاً (آمل ألا أقفز إلى الاستنتاج سريعًا مرة أخرى لول)

// svelte.config.js
const sveltePreprocess = require('svelte-preprocess')
const fs = require('fs')
const mediaQueries = fs
  .readFileSync('./src/assets/css/media-queries.css')
  .toString()

module.exports = {
  preprocess: sveltePreprocess({
    postcss: {
      prependData: mediaQueries,
    },
  }),
}

فيما يتعلق بالبناء ، أعتقد أنه لأنك تعلن عن الوسائط المخصصة في app.svelte الخاص بك. بمجرد إزالته وإعادة تشغيل خادم dev ، يظهر نفس الخطأ الذي تواجهه في IDE.
ربما يمكنك استيراد استعلامات الوسائط عندما تريد استخدامها ، أو جعلها متاحة عالميًا.

ال 8 كومينتر

نسخة مكررة من # 305

ليس لدينا خطة لدعم التحقق من صحة postcss أو css بعد ذلك. هذا الكثير من أعمال الصيانة. يمكنك الرجوع إلى هذا المستند للحصول على تعليمات الإعداد

لحالتك الخاصة: يتم نقل ملفات Svelte لكل ملف ، لذلك لا يعرف أي شيء عن --t داخل المكون إذا لم تحدده هناك. أعتقد أنه يعمل مع جهازك لأن كل شيء يتم تجميعه في ملف css كبير في النهاية.

شكرا جزيلا للاستجابة لك. أنا حقا أقدر جهودك في هذا

قررت النشر عن هذا فقط لأنني في السابق كنت أستخدم استعلامات الوسائط المخصصة هذه لمدة أسبوعين ولم يكن هناك خطأ ولكن بعد بعض التحديث (أفترض) يوجد الآن واحد. كما يمكن أن يصبح هذا جزءًا من مواصفات css في المستقبل ، من يدري. آمل أن يتم إصلاحه على الأقل بعد ذلك. شكرا

تحتاج إلى جعل الوسائط المخصصة بطريقة ما من media-queries.css متاحة أيضًا من العملية التمهيدية لـ svelte-config.js .

إذا جربت هذا الرمز الدقيق الذي نشرته ، فسيؤدي ذلك إلى حدوث خطأ جديد
"postcssPresetEnv ليس دالة". حتى لو قمت بإزالة. الافتراضي ما زلت أرى
خطا. ما زلت أشكرك كثيرًا على إلقاء نظرة على هذا.

في الجمعة ، 4 سبتمبر 2020 الساعة 09:37 ، كتب Lyu ، Wei-Da [email protected] :

المشكلة التي تواجهها هي إعداد المعالج المسبق في svelte.config.js.
لديك ثلاثة ملحقات تم تحميلها في التكوين التراكمي الخاص بك. لكن فقط قم بتمكين تلقائي
المعالجة المسبقة على svelte.config.js حتى لا تحصل عملية التحويل البرمجي لـ IDE
الأسلوب المجهز مسبقًا وبالتالي إلقاء الخطأ.

لقد جربت ذلك في ملف svelte.config.js واختفى الخطأ.

const sveltePreprocess = تتطلب ('svelte-preprocess') const postcssImport = تتطلب ('postcss-import') const postcssPresetEnv = تتطلب ('postcss-preset-env'). defaultconst postcssNested = تتطلب ('postcss-nested')
postcssPlugins = [
postcssImport () ،
postcssPresetEnv ({stage: 0}) ،
postcssNested () ،]
module.exports = {
preprocess: sveltePreprocess ({
sourceMap: صحيح ،
postcss: {
الإضافات: postcssPlugins ،
} ،
})}

-
أنت تتلقى هذا لأنك قمت بتأليف الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/sveltejs/language-tools/issues/517#issuecomment-686945578 ،
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AC6ONEK5L3PDUXKDVGIWFMLSECDKVANCNFSM4QTPHU5Q
.

آسف لذلك وجدت أنه لا يعمل XD

لقد وجدت حلاً (آمل ألا أقفز إلى الاستنتاج سريعًا مرة أخرى لول)

// svelte.config.js
const sveltePreprocess = require('svelte-preprocess')
const fs = require('fs')
const mediaQueries = fs
  .readFileSync('./src/assets/css/media-queries.css')
  .toString()

module.exports = {
  preprocess: sveltePreprocess({
    postcss: {
      prependData: mediaQueries,
    },
  }),
}

فيما يتعلق بالبناء ، أعتقد أنه لأنك تعلن عن الوسائط المخصصة في app.svelte الخاص بك. بمجرد إزالته وإعادة تشغيل خادم dev ، يظهر نفس الخطأ الذي تواجهه في IDE.
ربما يمكنك استيراد استعلامات الوسائط عندما تريد استخدامها ، أو جعلها متاحة عالميًا.

@ jasonlyu123 أنت مذهل! لقد قمت بحل كلتا المشكلتين دفعة واحدة (لم يكن وجود استعلامات إعلامية في مكانين جيدًا أيضًا). أنا أقدر هذا حقًا ، والآن يمكنني العمل بكل سرور. شكرا مرة أخرى ونتمنى لك التوفيق في كل شيء!

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