
Security News
Critical Security Vulnerability in React Server Components
React disclosed a CVSS 10.0 RCE in React Server Components and is advising users to upgrade affected packages and frameworks to patched versions now.
@tamagui/build
Advanced tools
A small, opinionated build script for libraries that target both React Native and React web.
A small, opinionated build script for libraries that target both React Native and React web.
Path-specific extensions are the only way to support ESM. Bundlers used to be flexible and configure this for you, but to conform to spec your import must specify the full file path now, and not leave out the extension. This is trouble for React Native which has platform file extensions.
We wanted to build packages so we didn't have to deal with all this fuss. What it does, is builds out .native and .web versions of every file. It then does some transforms to each to support a wide variety of setups - Metro, Vite, modern Node, etc.
The one limitation for now is it doesn't support .ios and .android platform-specifics at least for platform-specific imports. It does output non-specific versions for Metro/older node, so it'll work there.
It has a few features that make it useful for "universal" libraries:
./typesdist/esm and dist/cjs for ESModules and CommonJS.js and .mjs files in dist/esm
.mjs, adds path-specific imports to non-specific importspkgRemoveSideEffects).native.js and regular .js files for all output files, so React Native always loads separate files from web. In the native specific files,
process.env.TAMAGUI_TARGET is defined native (otherwise web)react-native are transformed to react-native-webIt assumes your package.json looks something like this:
{
"source": "src/index.tsx",
"types": "./types/index.d.ts",
"main": "dist/cjs",
"module": "dist/esm",
"removeSideEffects": "true",
"scripts": {
"build": "tamagui-build",
"watch": "tamagui-build --watch",
"clean": "tamagui-build clean"
},
"exports": {
"./package.json": "./package.json",
".": {
"react-native-import": "./dist/esm/index.native.js",
"react-native": "./dist/cjs/index.native.js",
"types": "./types/index.d.ts",
"import": "./dist/esm/index.mjs",
"require": "./dist/cjs/index.js"
}
},
"devDependencies": {
"@tamagui/build": "latest"
},
"tamagui": {
"build": {
"skipEnvToMeta": true,
"bundle.native": "./src/index.ts",
"bundle.native.test": "./src/index.ts"
}
},
}
npx @tamagui/build or install and use the CLI:
tamagui-build - builds src folder to dist and types folders
tamagui build . second argument sets baseUrl to tsc--bundle-modules - inline node_modules--declaration-root - sets tsc flag --declarationDir ./--ignore-base-url - if not set, tsc is passed --baseUrl .--skip-mjs - don't output mjs filestamagui-build --watch - watches for changes and does the abovetamagui-build clean - cleans dist, types, node_modules foldersFAQs
A small, opinionated build script for libraries that target both React Native and React web.
The npm package @tamagui/build receives a total of 28,706 weekly downloads. As such, @tamagui/build popularity was classified as popular.
We found that @tamagui/build demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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
React disclosed a CVSS 10.0 RCE in React Server Components and is advising users to upgrade affected packages and frameworks to patched versions now.

Research
/Security News
We spotted a wave of auto-generated “elf-*” npm packages published every two minutes from new accounts, with simple malware variants and early takedowns underway.

Security News
TypeScript 6.0 will be the last JavaScript-based major release, as the project shifts to the TypeScript 7 native toolchain with major build speedups.