Existe alguma maneira de remover ou desabilitar esses avisos ao carregar o Handlebars com o Webpack?
AVISO em ./~/handlebars/lib/index.js
require.extensions não é suportado pelo webpack. Use um carregador em vez disso.
AVISO em ./~/handlebars/lib/index.js
require.extensions não é suportado pelo webpack. Use um carregador em vez disso.
AVISO em ./~/handlebars/lib/index.js
require.extensions não é suportado pelo webpack. Use um carregador em vez disso.
Eu recomendaria pré-compilar usando algo como handlebars-loader e utilizando o módulo handlebars/runtime
. Caso contrário, você deve usar uma das compilações do lado do cliente via bower, pois elas não possuem nenhum código específico do nó.
Eu recomendaria pré-compilar usando algo como handlebars-loader e utilizando o módulo handlebars/runtime.
@kpdecker Como faríamos isso? Eu tenho o handlebars 1.3.0 e o handlebars-loader ^1.0.2 ambos instalados, então eu tenho um módulo AMD que se parece com isso:
define([
'hbs!path/to/template' // path/to/template.hbs
],
function(template) {
// ...
});
e na configuração do webpack eu tenho:
{
resolveLoader: {
fallback: path.join(__dirname, 'node_modules'),
alias: {
'hbs': 'handlebars-loader'
}
},
}
para que o hbs!
mapeie para o handlebars-loader. Então, quando executo o webpack, recebo esses avisos familiares:
WARNING in /some/absolute/path/~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
o que estou perdendo? O que devo fazer com handlebars/runtime
?
Tudo bem, então adicionar um alias para guidão parece ter se livrado dos avisos:
{
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'
}
}
}
Esse parece ser o truque, mas ainda tenho outros erros para descobrir antes que qualquer coisa possa ser executada, então saberei se isso funciona.
Olá, @kpdecker ,
Obrigado pelo seu feedback.
é meio que funcionando.
estou tendo o mesmo problema, é bastante interessante que, se eu adicionar a seção "resolver" do @trusktr ('handlebars/runtime.js'), execute o webpack e obterei o "Handlebars.compile não é uma função"
Eu perdi alguma coisa?
Muito Obrigado
O tempo de execução não inclui o compilador. Você precisará pré-compilar seu modelo, que é a melhor prática. Se você absolutamente precisa compilar modelos no cliente e está bem com o custo (inicialização e tamanho do arquivo), então você desejará usar o alias do guidão para algo como handlebars/dist/handlebars.js
Obrigado @kpdecker ,
vou tentar isso
Eu também arquivei #1102 para ver se isso pode ser mais limpo para pessoas que querem o tempo de execução inteiro.
@kpdecker @seeliang : Eu só quero que os outros saibam que o alias de guidão funciona.
resolve:
{
alias: {
'handlebars' : 'handlebars/dist/handlebars.js'
}
},
Obrigado @kpdecker.
Para outros olhando aqui
Esta é a melhor solução que encontrei
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
aqui https://github.com/pcardune/handlebars-loader/issues/110#issuecomment -358681867
Obrigado 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()]
}
Também funciona.
Comentários muito úteis
@kpdecker @seeliang : Eu só quero que os outros saibam que o alias de guidão funciona.
Obrigado @kpdecker.