Saiss.js v0.10 قم بإنشاء مشروع جديد - الرابط لا يعمل. لم يتم استخدام Gruntfile.js
سؤال
مع الإصدار الافتراضي من الأشرعة على npm (الإصدار 9؟) --linker يعمل بشكل جيد، أي.يقوم بإنشاء مجلد / رابط.يمكنني نسخ ملفات js وcss إلى assets/linker/
ويظهرون فيها layout.ejs
تلقائيا.
لقد قمت الآن بتثبيت الأشرعة v0.10 محليًا وعالميًا.باستخدام العقدة V0.10.25.لقد قمت بإنشاء مشروع أشرعة جديد باستخدام:
أشرعة اسم المشروع الجديد --linker
ولكن لم يتم إنشاء مجلد /linker.كان علي أن أخلق /.tmp
لأنه لم يكن موجودًا ، اضطررت إلى إنشائها /.tmp/public/linker/
لوضع /js
& /styles
وإضافتها يدويًا إلى layout.ejs
لقد قمت بإعادة تسميتها Gruntfile.js
ولا يزال برنامجي يعمل وبالتالي فإن Gruntfile لا يفعل شيئًا في البرنامج.
المحلول
لم يعد Sails v0.10 يستخدم مجلد الرابط - لقد كان يسبب الارتباك فقط.إذا قمت بتمكين خيار الرابط، فسيتم حذف أي أصول ضمن نطاقك assets
سيتم نسخ المجلد إلى ملفك .tmp/public
المجلد بواسطة Grunt عند رفع الأشرعة.سيتم إنشاء المجلد العام بواسطة Grunt حسب الضرورة.ال grunt-sync
ستقوم المهمة بعد ذلك بالحفاظ على مزامنة المجلدات طالما أن البرنامج قيد التشغيل.
لا تعتمد مشاريع Sails على Grunt، لذا فإن إعادة تسمية ملف Gruntfile (أو إزالته بالكامل) لن يوقف البرنامج عن العمل، لكن هذا لا يعني أنه لا يفعل أي شيء عندما يكون موجودًا!لمعرفة ما يفعله Grunt، يمكنك رفع الأشرعة باستخدامه sails lift --verbose
.
نصائح أخرى
كإضافة إلى إجابة sgress454، فإن سبب إنشاء مجلد .tmp هو أنه يمكن تجميع ملفات مثل ejs وملفات أقل في تنسيقات يفهمها متصفحك.إنها مشابهة للطريقة التي تقوم فيها بتجميع Java، حيث يتم تحويلها إلى Java bytecode (مجرد تشبيه، وبالتأكيد ليست نفس العملية). ليس من الضروري أن يكون هناك أي مجلد .tmp عندما لا تقوم بتشغيل الخادم؛هذا شيء ينشئه Grunt وهو ما يقرأ منه المتصفح.نأمل أن يوضح هذا الأمور أكثر قليلا.