¿Hay alguna forma de eliminar o deshabilitar estas advertencias al cargar Handlebars con Webpack?
ADVERTENCIA en ./~/handlebars/lib/index.js
require.extensions no es compatible con webpack. Utilice un cargador en su lugar.
ADVERTENCIA en ./~/handlebars/lib/index.js
require.extensions no es compatible con webpack. Utilice un cargador en su lugar.
ADVERTENCIA en ./~/handlebars/lib/index.js
require.extensions no es compatible con webpack. Utilice un cargador en su lugar.
Recomendaría precompilar usando algo como handlebars-loader y utilizando el módulo handlebars/runtime
. De lo contrario, debe usar una de las compilaciones del lado del cliente a través de Bower, ya que no tienen ningún código específico de este nodo.
Recomendaría precompilar usando algo como handlebars-loader y utilizando el módulo handlebars/runtime.
@kpdecker ¿Cómo haríamos eso? Tengo handlebars 1.3.0 y handlebars-loader ^1.0.2 instalados, luego tengo un módulo AMD que se ve así:
define([
'hbs!path/to/template' // path/to/template.hbs
],
function(template) {
// ...
});
y en la configuración del paquete web tengo:
{
resolveLoader: {
fallback: path.join(__dirname, 'node_modules'),
alias: {
'hbs': 'handlebars-loader'
}
},
}
para que el hbs!
se asigne al cargador del manillar. Luego, cuando ejecuto webpack, recibo esas advertencias familiares:
WARNING in /some/absolute/path/~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
¿Qué me estoy perdiendo? ¿Qué se supone que debo hacer con handlebars/runtime
?
Muy bien, agregar un alias para manubrios parece haberse deshecho de las advertencias:
{
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'
}
}
}
Ese parece ser el truco, pero todavía tengo otros errores que descifrar antes de que algo pueda ejecutarse, luego sabré si esto funciona.
Hola, @kpdecker ,
Gracias por tus comentarios.
es una especie de trabajo.
Tengo el mismo problema, es bastante interesante que si agrego la sección "resolver" de @trusktr ('handlebars/runtime.js') ejecute el paquete web y obtendré el mensaje "Handlebars.compile is not a function"
¿Me perdí algo?
muchas gracias
El tiempo de ejecución no incluye el compilador. Deberá compilar previamente su plantilla, que es la mejor práctica. Si absolutamente necesita compilar plantillas en el cliente y está de acuerdo con el costo (inicio y tamaño del archivo), entonces querrá alias handlebars a algo como handlebars/dist/handlebars.js
Gracias @kpdecker ,
probaré eso
También archivé el #1102 para ver si esto se puede hacer más limpio para las personas que quieren todo el tiempo de ejecución.
@kpdecker @seeliang : Solo quiero que los demás sepan que la creación de alias en el manillar funciona.
resolve:
{
alias: {
'handlebars' : 'handlebars/dist/handlebars.js'
}
},
Gracias @kpdecker.
Para otros que buscan aquí
Esta es la mejor solución que he encontrado.
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
aquí https://github.com/pcardune/handlebars-loader/issues/110#issuecomment -358681867
Gracias a @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()]
}
También hace obras.
Comentario más útil
@kpdecker @seeliang : Solo quiero que los demás sepan que la creación de alias en el manillar funciona.
Gracias @kpdecker.