esno 源码解析

374 阅读1分钟

esbuild-kit/esno: Alias to tsx (github.com)

  • 版本 0.16.3
    • 源码只有两句

      #!/usr/bin/env node
      import('tsx/cli')
      
    • 看起来 esno 的功能已经被 tsx/cli 覆盖了

    • 用户可以直接安装 tsx 来代替 esno

  • 版本 0.16.2
    • 源码 import('./node\_modules/tsx/dist/cli.js')
  • 版本 0.16.1
    • 源码 import('tsx/dist/cli.js')
  • 版本 0.16.0
    • 有两个 bin 文件,esmo.mjs(用于 type:module) 和 esno.js
  • 版本 0.14.1
    • 源码

      #!/usr/bin/env node
      
      const spawn = require('cross-spawn')
      const spawnSync = spawn.sync
      
      const register = require.resolve('esbuild-register')
      
      const argv = process.argv.slice(2)
      
      process.exit(spawnSync('node', ['-r', register, ...argv], { stdio: 'inherit' }).status)
      
    • 这个版本的思路是使用 node 的 register 功能

    • 而 esmo.mjs 使用了 esbuild-node-loader 来加载文件