-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add post-build hook #992
Conversation
Allow to configure a hook to be ran whenever a build is made, so that users can perform post-build tasks. This is especially useful for the `dev` task, as a build is ran each time the filetree changes. This is an opportunity for users to perform custom tasks that they may need on every builds. To do so, they just have to declare a POST_BUILD_SCRIPT environment variable containing the path to a script, like this: POST_BUILD_SCRIPT=./post-build.cjs plasmo dev The provided script must export a function, which will be executed: ```javascript module.exports = function() { // do stuff after build is done } ```
if (!process.env.POST_BUILD_SCRIPT) | ||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: for readability, we encapsulate early return with bracket
return | ||
} | ||
|
||
const postBuild = require(postBuildPath) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: would be nice if this script could also be in TS 🤑 (maybe run it via tsx, or run it via some type of bundling technique (prob overkill for a postbuild script)
Also would be nice if we don't have to use require, and instead use async import instead.
I think we can put this under a future issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ref: #993
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall, lgtm 👍
const postBuildPath = resolve(process.env.POST_BUILD_SCRIPT) | ||
|
||
if (!existsSync(postBuildPath)) { | ||
console.error("Post-build file does not exist or is not readable:", postBuildPath) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should use the logger utils instead
Details
Allow to configure a hook to be ran whenever a build is made, so that users can perform post-build tasks. This is especially useful for the
dev
task, as a build is ran each time the filetree changes.This is an opportunity for users to perform custom tasks that they may need on every builds. To do so, they just have to declare a POST_BUILD_SCRIPT environment variable containing the path to a script, like this:
The provided script must export a function, which will be executed:
Code of Conduct