diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c20b84a6ae..a36737eff46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: 1.15.7 + go-version: 1.16.0 id: go - name: Setup Node.js environment diff --git a/Makefile b/Makefile index 9e3831a8368..6bce996f8ce 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ test-all: test-prepublish: check-go-version test-all test-preact-splitting test-sucrase bench-rome-esbuild test-esprima test-rollup check-go-version: - @go version | grep 'go1\.15\.7' || (echo 'Please install Go version 1.15.7' && false) + @go version | grep 'go1\.16\.0' || (echo 'Please install Go version 1.16.0' && false) test-go: go test ./internal/... @@ -92,6 +92,7 @@ platform-all: cmd/esbuild/version.go test-all platform-windows \ platform-windows-32 \ platform-darwin \ + platform-darwin-arm64 \ platform-freebsd \ platform-freebsd-arm64 \ platform-linux \ @@ -120,6 +121,9 @@ platform-unixlike: platform-darwin: make GOOS=darwin GOARCH=amd64 NPMDIR=npm/esbuild-darwin-64 platform-unixlike +platform-darwin-arm64: + make GOOS=darwin GOARCH=arm64 NPMDIR=npm/esbuild-darwin-arm64 platform-unixlike + platform-freebsd: make GOOS=freebsd GOARCH=amd64 NPMDIR=npm/esbuild-freebsd-64 platform-unixlike @@ -169,6 +173,7 @@ publish-all: cmd/esbuild/version.go test-prepublish @echo Enter one-time password: @read OTP && OTP="$$OTP" make -j4 \ publish-darwin \ + publish-darwin-arm64 \ publish-linux \ publish-linux-32 @echo Enter one-time password: @@ -195,6 +200,9 @@ publish-windows-32: platform-windows-32 publish-darwin: platform-darwin test -n "$(OTP)" && cd npm/esbuild-darwin-64 && npm publish --otp="$(OTP)" +publish-darwin-arm64: platform-darwin-arm64 + test -n "$(OTP)" && cd npm/esbuild-darwin-arm64 && npm publish --otp="$(OTP)" + publish-freebsd: platform-freebsd test -n "$(OTP)" && cd npm/esbuild-freebsd-64 && npm publish --otp="$(OTP)" @@ -230,6 +238,7 @@ clean: rm -f npm/esbuild-windows-32/esbuild.exe rm -f npm/esbuild-windows-64/esbuild.exe rm -rf npm/esbuild-darwin-64/bin + rm -rf npm/esbuild-darwin-arm64/bin rm -rf npm/esbuild-freebsd-64/bin rm -rf npm/esbuild-freebsd-amd64/bin rm -rf npm/esbuild-linux-32/bin diff --git a/lib/install.ts b/lib/install.ts index b65ecb14515..f386bd3b04c 100644 --- a/lib/install.ts +++ b/lib/install.ts @@ -86,20 +86,7 @@ async function installBinaryFromPackage(name: string, fromPath: string, toPath: } function validateBinaryVersion(binaryPath: string): void { - let stdout; - try { - stdout = child_process.execFileSync(binaryPath, ['--version']).toString().trim(); - } catch (err) { - if (platformKey === 'darwin arm64 LE') - throw new Error(`${err && err.message || err} - -This install script is trying to install the x64 esbuild executable because the -arm64 esbuild executable is not available yet. Running this executable requires -the Rosetta 2 binary translator. Please make sure you have Rosetta 2 installed -before installing esbuild. -`); - throw err; - } + const stdout = child_process.execFileSync(binaryPath, ['--version']).toString().trim(); if (stdout !== version) { throw new Error(`Expected ${JSON.stringify(version)} but got ${JSON.stringify(stdout)}`); } @@ -289,7 +276,7 @@ const knownWindowsPackages: Record = { }; const knownUnixlikePackages: Record = { 'darwin x64 LE': 'esbuild-darwin-64', - 'darwin arm64 LE': 'esbuild-darwin-64', + 'darwin arm64 LE': 'esbuild-darwin-arm64', 'freebsd arm64 LE': 'esbuild-freebsd-arm64', 'freebsd x64 LE': 'esbuild-freebsd-64', 'linux arm LE': 'esbuild-linux-arm', diff --git a/npm/esbuild-darwin-64/package.json b/npm/esbuild-darwin-64/package.json index 375e634d310..aa444a6b56b 100644 --- a/npm/esbuild-darwin-64/package.json +++ b/npm/esbuild-darwin-64/package.json @@ -8,8 +8,7 @@ "darwin" ], "cpu": [ - "x64", - "arm64" + "x64" ], "directories": { "bin": "bin" diff --git a/npm/esbuild-darwin-arm64/README.md b/npm/esbuild-darwin-arm64/README.md new file mode 100644 index 00000000000..c2c0398db09 --- /dev/null +++ b/npm/esbuild-darwin-arm64/README.md @@ -0,0 +1,3 @@ +# esbuild + +This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details. diff --git a/npm/esbuild-darwin-arm64/package.json b/npm/esbuild-darwin-arm64/package.json new file mode 100644 index 00000000000..4ab6bdc4859 --- /dev/null +++ b/npm/esbuild-darwin-arm64/package.json @@ -0,0 +1,16 @@ +{ + "name": "esbuild-darwin-arm64", + "version": "0.8.46", + "description": "The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.", + "repository": "https://github.com/evanw/esbuild", + "license": "MIT", + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "directories": { + "bin": "bin" + } +} diff --git a/npm/esbuild-wasm/bin/esbuild b/npm/esbuild-wasm/bin/esbuild index d1d66a95a9b..3d2010f3094 100755 --- a/npm/esbuild-wasm/bin/esbuild +++ b/npm/esbuild-wasm/bin/esbuild @@ -81,4 +81,4 @@ fs.read = function () { }; const argv = ['node', wasm_exec, esbuild_wasm].concat(process.argv.slice(2)); -wrapper(require, require.main, Object.assign(Object.create(process), { argv }), { instantiate }); +wrapper(require, require.main, Object.assign(Object.create(process), { argv }), Object.assign(Object.create(WebAssembly), { instantiate }));