Skip to content
167
3

unplugin-macros npm jsr

Unit Test

宏是一个在打包时运行 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

赞助商

许可证

MIT 许可证 © 2023-PRESENT 三咲智子

Released under the MIT License.