Handlebars.js: يتطلب استخدام المقاود مع تحذير حزمة الويب

تم إنشاؤها على ٤ فبراير ٢٠١٥  ·  10تعليقات  ·  مصدر: handlebars-lang/handlebars.js

هل هناك أي طريقة لإزالة أو تعطيل هذه التحذيرات عند تحميل مقاود مع Webpack؟

تحذير في ./~/handlebars/lib/index.js
need.extensions غير مدعوم من حزمة الويب. استخدم محمل بدلا من ذلك.

تحذير في ./~/handlebars/lib/index.js
need.extensions غير مدعوم من حزمة الويب. استخدم محمل بدلا من ذلك.

تحذير في ./~/handlebars/lib/index.js
need.extensions غير مدعوم من حزمة الويب. استخدم محمل بدلا من ذلك.

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

kpdeckerseeliang : أريد فقط أن أجعل الآخرين يعرفون أن تسمية المقاود تعمل.

 resolve:
  {
    alias: {
      'handlebars' : 'handlebars/dist/handlebars.js'
    }
  },

شكراkpdecker.

ال 10 كومينتر

أوصي بالتجميع المسبق باستخدام شيء مثل أداة تحميل المقاود واستخدام الوحدة النمطية handlebars/runtime . بخلاف ذلك ، يجب عليك استخدام أحد الإنشاءات من جانب العميل عبر bower لأن هؤلاء لا يمتلكون أيًا من هذه التعليمات البرمجية الخاصة بالعقدة.

أوصي بالتجميع المسبق باستخدام شيء مثل محمل المقاود واستخدام وحدة المقاود / وقت التشغيل.

kpdecker كيف نفعل ذلك؟ لقد تم تثبيت مقود 1.3.0 ومحمل مقاود ^ 1.0.2 ، ثم لدي وحدة AMD تبدو كما يلي:

define([
  'hbs!path/to/template' // path/to/template.hbs
],
function(template) {
  // ...
});

وفي تكوين حزمة الويب ، لدي:

{
  resolveLoader: {
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'hbs': 'handlebars-loader'
    }
  },
}

بحيث يتم تعيين hbs! لمحمل المقاود. ثم عندما أقوم بتشغيل حزمة الويب ، أحصل على تلك التحذيرات المألوفة:

WARNING in /some/absolute/path/~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.

ماذا ينقصني؟ ماذا علي أن أفعل بـ handlebars/runtime ؟

حسنًا ، يبدو أن إضافة اسم مستعار للمقود قد تخلص من التحذيرات:

{
  resolve: {
    modulesDirectories: ['node_modules', 'src'],
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'handlebars': 'handlebars/runtime.js'
    }
  },
  resolveLoader: {
    fallback: path.join(__dirname, 'node_modules'),
    alias: {
      'hbs': 'handlebars-loader'
    }
  }
}

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

مرحبًا kpdecker ،

شكرا لك على ملاحظاتك.
إنه نوع من العمل.

أواجه نفس المشكلة ، من المثير للاهتمام أنه إذا أضفت قسم "حل" trusktr ('handlebars / runtime.js') ، فقم بتشغيل حزمة الويب وسأحصل على "Handlebars.compile ليست وظيفة"

هل فاتني أي شيء؟

تشكرات

وقت التشغيل لا يشمل المترجم. ستحتاج إلى إجراء ترجمة مسبقة للقالب ، وهي أفضل ممارسة. إذا كنت بحاجة ماسة إلى تجميع القوالب على العميل ولا تتناسب مع التكلفة (حجم بدء التشغيل والملف) ، فأنت تريد تسمية المقاود إلى شيء مثل handlebars/dist/handlebars.js

شكرا kpdecker ،
سوف احاول ان اجرب هذا

لقد قدمت أيضًا رقم 1102 لمعرفة ما إذا كان يمكن جعله أكثر نظافة للأشخاص الذين يريدون وقت التشغيل بالكامل.

kpdeckerseeliang : أريد فقط أن أجعل الآخرين يعرفون أن تسمية المقاود تعمل.

 resolve:
  {
    alias: {
      'handlebars' : 'handlebars/dist/handlebars.js'
    }
  },

شكراkpdecker.

للآخرين الذين يبحثون هنا

هذا هو أفضل حل وجدته
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
هنا https://github.com/pcardune/handlebars-loader/issues/110#issuecomment -358681867

بفضلmAAdhaTTah

محدث:

//fix handlebars warnings
config.resolve.alias = {
    ...config.resolve.alias,
    'handlebars/runtime': 'handlebars/dist/cjs/handlebars.runtime',
    'handlebars': 'handlebars/dist/cjs/handlebars.runtime',
};
const nodeExternals = require('webpack-node-externals');
module.exports = {
  externals: [nodeExternals()]
}

يعمل أيضا.

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

القضايا ذات الصلة

stevenvachon picture stevenvachon  ·  7تعليقات

mattkime picture mattkime  ·  4تعليقات

ShintaroOkuda picture ShintaroOkuda  ·  7تعليقات

DylanPiercey picture DylanPiercey  ·  7تعليقات

asgraf picture asgraf  ·  5تعليقات