turbo (Экспериментальная функция)
Предупреждение: Эти функции являются экспериментальными и будут работать только с
next --turbo
.
Загрузчики (loaders) webpack
В настоящее время Turbopack поддерживает подмножество API загрузчиков webpack, позволяя использовать некоторые загрузчики webpack для преобразования кода в Turbopack.
Для настройки загрузчиков добавьте названия установленных загрузчиков и любые параметры в next.config.js
, сопоставляя расширения файлов со списком загрузчиков:
module.exports = {
experimental: {
turbo: {
rules: {
// Формат с параметрами
'*.md': [
{
loader: '@mdx-js/loader',
options: {
format: 'md',
},
},
],
// Формат без параметров
'*.mdx': ['@mdx-js/loader'],
},
},
},
}
Затем, используя приведенную выше конфигурацию, вы можете использовать преобразованный код в своем приложении:
import MyDoc from './my-doc.mdx'
export default function Home() {
return <MyDoc />
}
Псевдонимы для разрешения модулей (Resolve Alias)
Через next.config.js
можно настроить Turbopack для изменения разрешения модулей с помощью псевдонимов, аналогично конфигурации resolve.alias
в webpack.
Для настройки псевдонимов сопоставьте импортируемые шаблоны с их новыми назначениями в next.config.js
:
module.exports = {
experimental: {
turbo: {
resolveAlias: {
underscore: 'lodash',
mocha: { browser: 'mocha/browser-entry.js' },
},
},
},
}
Это создаст псевдоним для импорта пакета underscore
на пакет lodash
. Другими словами, import underscore from 'underscore'
будет загружать модуль lodash
вместо underscore
.
Turbopack также поддерживает условные псевдонимы через это поле, аналогично условным экспортам в Node.js. На данный момент поддерживается только условие browser
. В приведенном выше случае импорты модуля mocha
будут заменены на mocha/browser-entry.js
, когда Turbopack работает в браузерных средах.
Для получения дополнительной информации и руководства по миграции вашего приложения с webpack на Turbopack см. документацию Turbopack о совместимости с webpack.