我非常喜欢 Next.js 的增量静态再生。
但是,我正在寻找一种根据需要强制重新生成静态页面的方法。理想情况下,通过一个命令,当我的源数据库中的数据发生变化时,我可以通过 API 调用触发该命令。
这个想法是在每次数据更改后只重新生成每个页面一次。我可以通过在重新验证间隔后获取目标页面来强制执行 ISR 页面的重新生成,但我正在寻找一种方法,在数据更改之前不冗余地重新生成它们。
任何想法是否可行以及如何?:-)
我一直在努力使用 SWC 编译器通过 Next.js 转换导入。
我正在尝试使用swc-plugin-transform-import作为babel-plugin-transform-imports的替代品,以缩短 Material UI 导入的时间。
如记录所示,我尝试过此设置。它显示了实验性警告,但除此之外它完全忽略了插件。
// next.config.js
module.exports = {
experimental: {
swcPlugins: [
[
'swc-plugin-transform-import',
{
"@mui/material": {
transform: "@mui/material/${member}",
preventFullImport: true
},
"@mui/icons-material": {
transform: "@mui/icons-material/${member}",
preventFullImport: true
},
"@mui/styles": {
transform: "@mui/styles/${member}",
preventFullImport: true
},
"@mui/lab": {
transform: "@mui/lab/${member}",
preventFullImport: true
}
}
]
]
}
}
Run Code Online (Sandbox Code Playgroud)
有人知道如何启用和配置swc-plugin-transform-import
Next.js 吗?谢谢
我正在使用 multer 将媒体上传到我的 s3 存储桶。我使用 multer-s3 作为中间件来上传媒体,如:
const upload = multer({
storage: multerS3({
s3: s3,
bucket: myBucket,
key: function (req, file, cb) {
cb(null, new Date().getTime() + '_' + file.originalname)
}
})
});
Run Code Online (Sandbox Code Playgroud)
并在路由中调用它:
router.post("/media",upload.single("media"))
Run Code Online (Sandbox Code Playgroud)
这很好用。但是一个对我不起作用的场景是:假设我上传了一张图片,我想通过在上传之前调整它的大小来存储它的多个版本。我无法像普通的那样调用上传功能。我想做类似的事情:
let thumbnail = myFunctionToReturnImageFile(req.file);
upload(thumbnail);
Run Code Online (Sandbox Code Playgroud)
我知道我需要发送一些多部分/表单部分,但我找不到解决方案。如果你给我推荐一个很棒的东西。
javascript ×2
next.js ×2
amazon-s3 ×1
express ×1
material-ui ×1
multer ×1
multer-s3 ×1
node.js ×1
swc-compiler ×1
vercel ×1