unplugin-macros
宏是一个在打包时运行 JavaScript 函数的机制。 这些函数或变量返回的值会直接内联到你的包中。
安装
bash
# npm
npm i -D unplugin-macros
# jsr
npx jsr add -D @unplugin/macros
Vite
ts
// vite.config.ts
import Macros from 'unplugin-macros/vite'
export default defineConfig({
plugins: [Macros()],
})
Rollup
ts
// rollup.config.js
import Macros from 'unplugin-macros/rollup'
export default {
plugins: [Macros()],
}
esbuild
需要 esbuild >= 0.15
ts
// esbuild.config.js
import { build } from 'esbuild'
build({
plugins: [require('unplugin-macros/esbuild')()],
})
Webpack
ts
// webpack.config.js
module.exports = {
/* ... */
plugins: [require('unplugin-macros/webpack')()],
}
用法
js
// main.js
import { buildTime, getRandom } from './macros' with { type: 'macro' }
getRandom() // 在构建时将被替换为一个随机数
buildTime // 在构建时将被替换为时间戳
js
// macros.js
export function getRandom() {
return Math.random()
}
export const buildTime = Date.now()
有关更多信息,请参见 Bun Macros。
TypeScript
在 TypeScript 5.3 及以上版本中支持 Import Attributes 语法。 但是,你可以使用 assert
关键字替代 with
,这在 TypeScript 4.5 及以上版本中是支持的。
ESLint
在 ESLint v9.14.0 中支持 Import Attributes 语法。
选项
请参考 docs。
感谢
感谢 Bun Macros。