diff --git a/publish.sh b/publish.sh index 94621ea..12314a8 100755 --- a/publish.sh +++ b/publish.sh @@ -6,11 +6,23 @@ set -e npm --no-git-tag-version version ${semver} npm run build cp package.json build/ -sed -i '' -E 's/"build"/"*"/' build/package.json -sed -i '' 's#"build/cjs/index.js"#"cjs/index.js"#' build/package.json -sed -i '' 's#"build/es/index.js"#"es/index.js"#' build/package.json -sed -i '' 's#"build/types/index.d.ts"#"types/index.d.ts"#' build/package.json +# Use Node.js for portable package.json normalization +# Pass the target path via env var to avoid Node treating it as a module/script argument +PKG_PATH="$(pwd)/build/package.json" node - <<'EOF' +const fs = require('fs'); +const path = process.env.PKG_PATH; +const pkg = JSON.parse(fs.readFileSync(path, 'utf8')); +pkg.private = false; +delete pkg.scripts; +delete pkg.devDependencies; +if (!pkg.files) pkg.files = ['*']; +else pkg.files = pkg.files.map(x => x === 'build' ? '*' : x); +['main','module','types'].forEach(k => { + if (pkg[k]) pkg[k] = pkg[k].replace(/^build\//, ''); +}); +fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + '\n'); +EOF cd build npm publish --access public --loglevel verbose