publish.js 837 B

123456789101112131415161718192021222324252627
  1. const { execSync } = require('child_process')
  2. const fs = require('fs')
  3. const path = require('path')
  4. const platforms = require('./platforms')
  5. const updatePackageJson = require('./update-package')
  6. const { version } = require('../package.json')
  7. updatePackageJson(path.join(__dirname, '..', 'package.json'), {
  8. optionalDependencies: platforms.reduce((acc, cur) => {
  9. acc[`@napi-rs/package-template-${cur}`] = `^${version}`
  10. return acc
  11. }, {}),
  12. })
  13. for (const name of platforms) {
  14. const pkgDir = path.join(__dirname, '..', 'npm', name)
  15. const filename = `index.${name}.node`
  16. const bindingFile = fs.readFileSync(path.join(__dirname, '..', `bindings-${name}`, filename))
  17. fs.writeFileSync(path.join(pkgDir, filename), bindingFile)
  18. execSync('npm publish', {
  19. cwd: pkgDir,
  20. env: process.env,
  21. stdio: 'inherit',
  22. })
  23. }