我正在使用基于https://github.com/zeit/next.js/tree/master/examples/custom-server-typescript
上的示例的项目我已经在next.config.js
中配置了Babel插件,如下所示:
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
)时,将运行webpack插件,并按预期生成service-worker.js
。
但是,当我运行yarn dev
(脚本为nodemon server/index.ts
)时,Webpack插件未运行,也没有生成service-worker.js
。
因此,最好的是,我在使用yarn dev
时Webpack不是直接运行,而在TypeScript源代码中它仅使用ts-node
。如果我的理解是正确的,我如何获得热重载并加载其他babel插件(在next.config.js
中进行配置)?如果我的理解不对,请赐教!