turbo (實驗性功能)
警告:這些功能屬於實驗性質,僅在執行
next --turbo
時有效。
webpack 載入器
目前 Turbopack 支援 webpack 載入器 API 的子集,允許您在 Turbopack 中使用部分 webpack 載入器來轉換程式碼。
要設定載入器,請在 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 />
}
解析別名
透過 next.config.js
,可以設定 Turbopack 透過別名修改模組解析方式,類似於 webpack 的 resolve.alias
設定。
要設定解析別名,請在 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
條件。在上面的範例中,當 Turbopack 目標環境為瀏覽器時,mocha
模組的匯入將會被別名為 mocha/browser-entry.js
。
如需更多資訊以及如何從 webpack 遷移至 Turbopack 的指引,請參閱 Turbopack 關於 webpack 相容性的文件。