Handlebars.js: Utilisation du guidon avec l'avertissement webpack require.extentions non pris en charge

Créé le 4 févr. 2015  ·  10Commentaires  ·  Source: handlebars-lang/handlebars.js

Existe-t-il un moyen de supprimer ou de désactiver ces avertissements lors du chargement de Handlebars avec Webpack ?

AVERTISSEMENT dans ./~/handlebars/lib/index.js
require.extensions n'est pas pris en charge par webpack. Utilisez plutôt un chargeur.

AVERTISSEMENT dans ./~/handlebars/lib/index.js
require.extensions n'est pas pris en charge par webpack. Utilisez plutôt un chargeur.

AVERTISSEMENT dans ./~/handlebars/lib/index.js
require.extensions n'est pas pris en charge par webpack. Utilisez plutôt un chargeur.

Commentaire le plus utile

@kpdecker @seeliang : Je veux juste faire savoir aux autres que le crénelage des guidons fonctionne.

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

Merci @kpdecker.

Tous les 10 commentaires

Je recommanderais de précompiler en utilisant quelque chose comme handlebars-loader et en utilisant le module handlebars/runtime . Sinon, vous devez utiliser l'une des versions côté client via bower car celles-ci n'ont aucun de ces codes spécifiques au nœud.

Je recommanderais de précompiler en utilisant quelque chose comme handlebars-loader et en utilisant le module handlebars/runtime.

@kpdecker Comment ferions-nous cela? J'ai handlebars 1.3.0 et handlebars-loader ^ 1.0.2 installés, puis j'ai un module AMD qui ressemble à ceci :

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

et dans la configuration webpack j'ai:

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

de sorte que le hbs! corresponde au handlebars-loader. Ensuite, lorsque j'exécute Webpack, je reçois ces avertissements familiers :

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

Qu'est-ce que je rate? Qu'est-ce que je suis censé faire avec handlebars/runtime ?

D'accord, donc l'ajout d'un alias pour le guidon semble s'être débarrassé des avertissements :

{
  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'
    }
  }
}

Cela semble être l'astuce, mais j'ai encore d'autres erreurs à résoudre avant que quoi que ce soit puisse même fonctionner, alors je saurai si cela fonctionne.

Salut, @kpdecker ,

Merci pour votre avis.
c'est une sorte de travail.

j'ai le même problème, il est assez intéressant que si j'ajoute la section "résolution" de @trusktr ('handlebars/ runtime.js '), exécutez webpack et j'obtiendrai le "Handlebars.compile n'est pas une fonction"

Est-ce que j'ai raté quelque chose ?

Merci beaucoup

Le runtime n'inclut pas le compilateur. Vous devrez précompiler votre modèle, ce qui est la meilleure pratique. Si vous avez absolument besoin de compiler des modèles sur le client et que vous êtes d'accord avec le coût (taille de démarrage et de fichier), alors vous voudrez alias handlebars à quelque chose comme handlebars/dist/handlebars.js

Merci @kpdecker ,
je vais essayer ça

J'ai également déposé le numéro 1102 pour voir si cela peut être rendu plus propre pour les personnes qui souhaitent tout le temps d'exécution.

@kpdecker @seeliang : Je veux juste faire savoir aux autres que le crénelage des guidons fonctionne.

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

Merci @kpdecker.

Pour les autres qui cherchent ici

C'est la meilleure solution que j'ai trouvé
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
ici https://github.com/pcardune/handlebars-loader/issues/110#issuecomment -358681867

Merci à @mAAdhaTTah

UPD :

//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()]
}

Fait aussi des travaux.

Cette page vous a été utile?
0 / 5 - 0 notes