Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
@esbuild/darwin-arm64
Advanced tools
The @esbuild/darwin-arm64 npm package is a binary package for the esbuild bundler and minifier. It is specifically compiled for macOS on ARM64 architecture (Apple Silicon). Esbuild is a fast JavaScript bundler and minifier that compiles TypeScript, JavaScript, and JSX files into a single output file. It is designed to be extremely fast and efficient, taking advantage of parallelism and native code execution.
Bundling JavaScript
This feature allows you to bundle multiple JavaScript files into a single output file, which can be used in a browser or other JavaScript environment.
require('esbuild').build({
entryPoints: ['app.js'],
bundle: true,
outfile: 'out.js'
}).catch(() => process.exit(1))
Minifying JavaScript
This feature enables the minification of JavaScript code to reduce file size and improve load times in production environments.
require('esbuild').build({
entryPoints: ['app.js'],
minify: true,
outfile: 'out.js'
}).catch(() => process.exit(1))
Transpiling TypeScript
This feature allows you to transpile TypeScript code into JavaScript, enabling you to use TypeScript's advanced features while maintaining compatibility with JavaScript environments.
require('esbuild').build({
entryPoints: ['app.ts'],
bundle: true,
outfile: 'out.js'
}).catch(() => process.exit(1))
JSX Support
This feature provides support for JSX syntax, commonly used in React applications, allowing you to bundle and transpile JSX files directly.
require('esbuild').build({
entryPoints: ['app.jsx'],
bundle: true,
outfile: 'out.js'
}).catch(() => process.exit(1))
Webpack is a popular JavaScript module bundler with a large ecosystem of plugins. It is more configurable than esbuild but generally slower due to its JavaScript-based architecture as opposed to the Go-based architecture of esbuild.
Rollup is another JavaScript module bundler that focuses on producing efficient bundles for modern module formats like ES modules. It is known for its tree-shaking capabilities but is not as fast as esbuild.
Parcel is a web application bundler that offers a zero-configuration experience. It is user-friendly and supports a wide range of file types out of the box, but it does not match the speed of esbuild.
Terser is a JavaScript parser, mangler, and compressor toolkit for ES6+. It is commonly used for minifying JavaScript code. While it is efficient at reducing code size, it does not offer bundling capabilities and is slower than esbuild.
This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
0.21.3
Implement the decorator metadata proposal (#3760)
This release implements the decorator metadata proposal, which is a sub-proposal of the decorators proposal. Microsoft shipped the decorators proposal in TypeScript 5.0 and the decorator metadata proposal in TypeScript 5.2, so it's important that esbuild also supports both of these features. Here's a quick example:
// Shim the "Symbol.metadata" symbol
Symbol.metadata ??= Symbol('Symbol.metadata')
const track = (_, context) => {
(context.metadata.names ||= []).push(context.name)
}
class Foo {
@track foo = 1
@track bar = 2
}
// Prints ["foo", "bar"]
console.log(Foo[Symbol.metadata].names)
⚠️ WARNING ⚠️
This proposal has been marked as "stage 3" which means "recommended for implementation". However, it's still a work in progress and isn't a part of JavaScript yet, so keep in mind that any code that uses JavaScript decorator metadata may need to be updated as the feature continues to evolve. If/when that happens, I will update esbuild's implementation to match the specification. I will not be supporting old versions of the specification.
Fix bundled decorators in derived classes (#3768)
In certain cases, bundling code that uses decorators in a derived class with a class body that references its own class name could previously generate code that crashes at run-time due to an incorrect variable name. This problem has been fixed. Here is an example of code that was compiled incorrectly before this fix:
class Foo extends Object {
@(x => x) foo() {
return Foo
}
}
console.log(new Foo().foo())
Fix tsconfig.json
files inside symlinked directories (#3767)
This release fixes an issue with a scenario involving a tsconfig.json
file that extends
another file from within a symlinked directory that uses the paths
feature. In that case, the implicit baseURL
value should be based on the real path (i.e. after expanding all symbolic links) instead of the original path. This was already done for other files that esbuild resolves but was not yet done for tsconfig.json
because it's special-cased (the regular path resolver can't be used because the information inside tsconfig.json
is involved in path resolution). Note that this fix no longer applies if the --preserve-symlinks
setting is enabled.
FAQs
The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.
The npm package @esbuild/darwin-arm64 receives a total of 5,949,894 weekly downloads. As such, @esbuild/darwin-arm64 popularity was classified as popular.
We found that @esbuild/darwin-arm64 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.