Я использую проект на основе примера в https://github.com/zeit/next.js/tree/master/examples/custom-server-typescript
Я настроил плагин Babel в next.config.js
следующим образом:
let config = withTypescript({
serverRuntimeConfig: {
// Will only be available on the server side
mySecret: "secret"
},
publicRuntimeConfig: {
// Will be available on both server and client
port: parseInt(process.env.PORT, 10) || 3000,
mySecret: process.env.MY_SECRET // Pass through env variables
},
// See https://github.com/zeit/next.js/tree/master/examples/with-sw-precache
webpack: config => {
config.plugins.push(
new SWPrecacheWebpackPlugin({
verbose: true,
staticFileGlobsIgnorePatterns: [/\.next\//],
runtimeCaching: [
{
handler: "networkFirst",
urlPattern: /^https?.*/
}
]
})
)
return config
}
})
module.exports = config
Когда я запускаю yarn build
(чей скрипт next build && tsc --project tsconfig.server.json
), запускается плагин веб-пакета и генерируется service-worker.js
, как и ожидалось.
Однако, когда я запускаю yarn dev
(чей скрипт nodemon server/index.ts
), плагин Webpack не запускается и service-worker.js
не генерируется.
Итак, насколько я могу судить, Webpack не запускается напрямую, когда я использую yarn dev
, и он использует только ts-node
в источнике TypeScript. Если мое понимание этого правильное, как я могу получить горячую перезагрузку и загрузить другие плагины Babel (как настроено в next.config.js
)? Если мое понимание нарушено, пожалуйста, просветите меня!