Apakah ada cara untuk menghapus atau menonaktifkan peringatan ini saat memuat Handlebars dengan Webpack?
PERINGATAN di ./~/handbars/lib/index.js
require.extensions tidak didukung oleh webpack. Gunakan pemuat sebagai gantinya.
PERINGATAN di ./~/handbars/lib/index.js
require.extensions tidak didukung oleh webpack. Gunakan pemuat sebagai gantinya.
PERINGATAN di ./~/handbars/lib/index.js
require.extensions tidak didukung oleh webpack. Gunakan pemuat sebagai gantinya.
Saya akan merekomendasikan prakompilasi menggunakan sesuatu seperti handlebars-loader dan menggunakan modul handlebars/runtime
. Jika tidak, Anda harus menggunakan salah satu build sisi klien melalui bower karena tidak memiliki kode khusus node ini.
Saya akan merekomendasikan prakompilasi menggunakan sesuatu seperti handlebars-loader dan memanfaatkan modul handlebars/runtime.
@kpdecker Bagaimana kita melakukannya? Saya memiliki setang 1.3.0 dan setang-loader ^1.0.2 keduanya diinstal, kemudian saya memiliki modul AMD yang terlihat seperti ini:
define([
'hbs!path/to/template' // path/to/template.hbs
],
function(template) {
// ...
});
dan dalam konfigurasi webpack saya punya:
{
resolveLoader: {
fallback: path.join(__dirname, 'node_modules'),
alias: {
'hbs': 'handlebars-loader'
}
},
}
sehingga hbs!
dipetakan ke handlebars-loader. Kemudian ketika saya menjalankan webpack, saya mendapatkan peringatan yang familier:
WARNING in /some/absolute/path/~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
Apa yang saya lewatkan? Apa yang harus saya lakukan dengan handlebars/runtime
?
Baiklah, jadi menambahkan alias untuk setang tampaknya telah menghilangkan peringatan:
{
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'
}
}
}
Sepertinya itu triknya, tetapi saya masih memiliki kesalahan lain untuk diketahui sebelum apa pun dapat berjalan, maka saya akan tahu apakah ini berhasil.
Hai , @kpdecker ,
Terima kasih atas tanggapan Anda.
itu jenis bekerja.
saya mengalami masalah yang sama, cukup menarik jika saya menambahkan bagian "resolve" @trusktr ('handbars/runtime.js') menjalankan webpack dan saya akan mendapatkan "Handbars.compile is not a function"
Apakah saya melewatkan sesuatu?
terimakasih banyak
Runtime tidak termasuk compiler. Anda harus mengkompilasi template terlebih dahulu, yang merupakan praktik terbaik. Jika Anda benar-benar perlu mengkompilasi template pada klien dan tidak masalah dengan biaya (permulaan dan ukuran file), maka Anda akan ingin alias setang menjadi sesuatu seperti handlebars/dist/handlebars.js
Terima kasih @kpdecker ,
saya akan mencobanya
Saya juga telah mengajukan #1102 untuk melihat apakah ini dapat dibuat lebih bersih untuk orang-orang yang menginginkan seluruh runtime.
@kpdecker @seeliang : Saya hanya ingin memberi tahu orang lain bahwa setang aliasing berfungsi.
resolve:
{
alias: {
'handlebars' : 'handlebars/dist/handlebars.js'
}
},
Terima kasih @kpdecker.
Untuk yang lain cari disini
Ini adalah solusi terbaik yang saya temukan
https://github.com/valtech-nyc/brookjs/blob/master/packages/brookjs/webpack.config.js#L39 -L43
di sini https://github.com/pcardune/handbars-loader/issues/110#issuecomment -358681867
Terima kasih kepada @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()]
}
Juga bekerja.
Komentar yang paling membantu
@kpdecker @seeliang : Saya hanya ingin memberi tahu orang lain bahwa setang aliasing berfungsi.
Terima kasih @kpdecker.