Есть ли способ удалить или отключить эти предупреждения при загрузке Handlebars с помощью Webpack?
ПРЕДУПРЕЖДЕНИЕ в ./~/handlebars/lib/index.js
require.extensions не поддерживается веб-пакетом. Вместо этого используйте загрузчик.
ПРЕДУПРЕЖДЕНИЕ в ./~/handlebars/lib/index.js
require.extensions не поддерживается веб-пакетом. Вместо этого используйте загрузчик.
ПРЕДУПРЕЖДЕНИЕ в ./~/handlebars/lib/index.js
require.extensions не поддерживается веб-пакетом. Вместо этого используйте загрузчик.
Я бы рекомендовал предварительно скомпилировать что-то вроде handlebars-loader и использовать модуль handlebars/runtime
. В противном случае вам следует использовать одну из сборок на стороне клиента через Bower, поскольку в них нет кода, специфичного для узла.
Я бы рекомендовал предварительно скомпилировать что-то вроде handlebars-loader и использовать модуль handlebars/runtime.
@kpdecker Как бы мы это сделали? У меня установлены handlebars 1.3.0 и handlebars-loader ^ 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!
сопоставляется с рулем-загрузчиком. Затем, когда я запускаю webpack, я получаю знакомые предупреждения:
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 что-то вроде handlebars/dist/handlebars.js
Спасибо @kpdecker ,
я попробую это
Я также зарегистрировал #1102, чтобы узнать, можно ли сделать это чище для людей, которым нужна вся среда выполнения.
@kpdecker @seeliang : Я просто хочу, чтобы другие знали, что псевдонимы руля работают.
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()]
}
Тоже работает.
Самый полезный комментарий
@kpdecker @seeliang : Я просто хочу, чтобы другие знали, что псевдонимы руля работают.
Спасибо @kpdecker.