@tamagui/vite-plugin 1.52.8 → 1.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,11 @@
1
- import { esbuildFlowPlugin } from "@bunchtogether/vite-plugin-flow";
1
+ import { readFile } from "fs/promises";
2
+ import { dirname } from "path";
3
+ import { transform } from "@swc/core";
4
+ import { parse } from "es-module-lexer";
5
+ import { viteExternalsPlugin } from "vite-plugin-externals";
2
6
  import { extensions } from "./extensions";
7
+ import { getVitePath } from "./getVitePath";
8
+ import { prebuiltFiles } from "./nativePrebuild";
3
9
  function nativePlugin(options) {
4
10
  return {
5
11
  name: "tamagui-native",
@@ -21,22 +27,13 @@ function nativePlugin(options) {
21
27
  config.resolve ??= {};
22
28
  config.resolve.extensions = extensions;
23
29
  config.optimizeDeps ??= {};
24
- config.optimizeDeps.needsInterop ??= [];
25
- config.optimizeDeps.needsInterop.push("react-native");
30
+ config.optimizeDeps.disabled = true;
26
31
  config.optimizeDeps.esbuildOptions ??= {};
27
32
  config.optimizeDeps.esbuildOptions.resolveExtensions = extensions;
28
33
  config.optimizeDeps.esbuildOptions.plugins ??= [];
29
- config.optimizeDeps.esbuildOptions.plugins.push(
30
- esbuildFlowPlugin(
31
- /node_modules\/(react-native\/|@react-native\/)/,
32
- (_) => "jsx",
33
- {
34
- all: true
35
- }
36
- )
37
- );
38
- config.optimizeDeps.include ??= [];
39
- config.optimizeDeps.include.push("react-native");
34
+ config.optimizeDeps.esbuildOptions.alias = {
35
+ "react-native": "@tamagui/proxy-worm"
36
+ };
40
37
  config.optimizeDeps.esbuildOptions.loader ??= {};
41
38
  config.optimizeDeps.esbuildOptions.loader[".js"] = "jsx";
42
39
  config.optimizeDeps.esbuildOptions.plugins.push({
@@ -59,15 +56,116 @@ function nativePlugin(options) {
59
56
  config.build.rollupOptions.input = config.root;
60
57
  config.build.rollupOptions.output ??= {};
61
58
  config.build.rollupOptions.plugins ??= [];
62
- config.build.rollupOptions.external = [
63
- "react-native",
64
- "react",
65
- "react/jsx-runtime",
66
- "react/jsx-dev-runtime"
67
- ];
59
+ if (options.mode === "serve") {
60
+ config.build.rollupOptions.external = [
61
+ "react-native",
62
+ "react",
63
+ "react/jsx-runtime",
64
+ "react/jsx-dev-runtime"
65
+ ];
66
+ }
68
67
  if (!Array.isArray(config.build.rollupOptions.plugins)) {
69
68
  throw `x`;
70
69
  }
70
+ if (options.mode === "build") {
71
+ config.build.rollupOptions.plugins.push({
72
+ name: `swap-react-native`,
73
+ async load(id) {
74
+ if (id.endsWith("/react-native/index.js")) {
75
+ const bundled = await readFile(prebuiltFiles.reactNative, "utf-8");
76
+ const code = `
77
+ const run = () => {
78
+ ${bundled.replace(
79
+ `module.exports = require_react_native();`,
80
+ `return require_react_native();`
81
+ ).replace(
82
+ `var require_jsx_runtime = `,
83
+ `var require_jsx_runtime = global['__JSX__'] = `
84
+ ).replace(
85
+ `var require_react = `,
86
+ `var require_react = global['__React__'] = `
87
+ )}
88
+ }
89
+ const RN = run()
90
+ ${RNExportNames.map((n) => `export const ${n} = RN.${n}`).join("\n")}
91
+ `;
92
+ return {
93
+ code
94
+ };
95
+ }
96
+ }
97
+ });
98
+ config.build.rollupOptions.plugins.push(
99
+ viteExternalsPlugin(
100
+ {
101
+ react: "____react____",
102
+ "react/jsx-runtime": "____jsx____",
103
+ "react/jsx-dev-runtime": "____jsx____"
104
+ },
105
+ {
106
+ useWindow: false
107
+ }
108
+ )
109
+ );
110
+ config.build.rollupOptions.plugins.push({
111
+ name: `force-export-all`,
112
+ async transform(code, id) {
113
+ const [imports, exports] = parse(code);
114
+ let forceExports = "";
115
+ let counts = {};
116
+ for (const imp of imports) {
117
+ if (imp.n && imp.n[0] !== ".") {
118
+ counts[imp.n] ||= 0;
119
+ counts[imp.n]++;
120
+ if (counts[imp.n] == 2) {
121
+ const path = await getVitePath(dirname(id), imp.n);
122
+ forceExports += `Object.assign(exports, require("${path}"));`;
123
+ }
124
+ }
125
+ }
126
+ forceExports += exports.map((e) => {
127
+ if (e.n === "default") {
128
+ return "";
129
+ }
130
+ let out = "";
131
+ if (e.ln !== e.n) {
132
+ out += `__ignore = typeof ${e.n} === 'undefined' ? 0 : 0;`;
133
+ }
134
+ out += `globalThis.____forceExport = ${e.ln}`;
135
+ return out;
136
+ }).join(";");
137
+ return code + "\n" + forceExports;
138
+ }
139
+ });
140
+ config.build.rollupOptions.plugins.push({
141
+ name: `native-transform`,
142
+ async transform(code, id) {
143
+ if (id.includes(`node_modules/react/jsx-dev-runtime.js`) || id.includes(`node_modules/react/index.js`) || id.includes(`node_modules/react/cjs/react.development.js`) || id.includes(`node_modules/react-native/index.js`) || id.includes(
144
+ `node_modules/react/cjs/react-jsx-dev-runtime.development.js`
145
+ ) || id.includes(`packages/vite-native-client/`)) {
146
+ return;
147
+ }
148
+ let out = await transform(code, {
149
+ filename: id,
150
+ swcrc: false,
151
+ configFile: false,
152
+ sourceMaps: true,
153
+ jsc: {
154
+ target: "es5",
155
+ parser: id.endsWith(".tsx") ? { syntax: "typescript", tsx: true, decorators: true } : id.endsWith(".ts") ? { syntax: "typescript", tsx: false, decorators: true } : id.endsWith(".jsx") ? { syntax: "ecmascript", jsx: true } : { syntax: "ecmascript" },
156
+ transform: {
157
+ useDefineForClassFields: true,
158
+ react: {
159
+ development: true,
160
+ runtime: "automatic"
161
+ }
162
+ }
163
+ }
164
+ });
165
+ return out;
166
+ }
167
+ });
168
+ }
71
169
  if (process.env.DEBUG) {
72
170
  console.log("config..", config);
73
171
  }
@@ -75,7 +173,10 @@ function nativePlugin(options) {
75
173
  include: /node_modules\/react\//
76
174
  };
77
175
  const updateOutputOptions = (out) => {
78
- out.inlineDynamicImports = true;
176
+ out.preserveModules = true;
177
+ out.entryFileNames = (chunkInfo) => {
178
+ return "[name].js";
179
+ };
79
180
  out.manualChunks = void 0;
80
181
  };
81
182
  if (Array.isArray(config.build.rollupOptions.output)) {
@@ -91,23 +192,18 @@ const RNExportNames = [
91
192
  "AccessibilityInfo",
92
193
  "ActivityIndicator",
93
194
  "Button",
94
- "DatePickerIOS",
95
195
  "DrawerLayoutAndroid",
96
196
  "FlatList",
97
197
  "Image",
98
198
  "ImageBackground",
99
199
  "InputAccessoryView",
100
200
  "KeyboardAvoidingView",
101
- "MaskedViewIOS",
102
201
  "Modal",
103
202
  "Pressable",
104
- "ProgressBarAndroid",
105
- "ProgressViewIOS",
106
203
  "RefreshControl",
107
204
  "SafeAreaView",
108
205
  "ScrollView",
109
206
  "SectionList",
110
- "Slider",
111
207
  "StatusBar",
112
208
  "Switch",
113
209
  "Text",
@@ -126,16 +222,13 @@ const RNExportNames = [
126
222
  "Appearance",
127
223
  "AppRegistry",
128
224
  "AppState",
129
- "AsyncStorage",
130
225
  "BackHandler",
131
- "Clipboard",
132
226
  "DeviceInfo",
133
227
  "DevSettings",
134
228
  "Dimensions",
135
229
  "Easing",
136
230
  "findNodeHandle",
137
231
  "I18nManager",
138
- "ImagePickerIOS",
139
232
  "InteractionManager",
140
233
  "Keyboard",
141
234
  "LayoutAnimation",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativePlugin.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,27 +3,6 @@ import { join } from "path";
3
3
  import * as babel from "@babel/core";
4
4
  import { build } from "esbuild";
5
5
  import { extensions } from "./extensions";
6
- async function nativeBabelTransform(input) {
7
- return await new Promise((res, rej) => {
8
- babel.transform(
9
- input,
10
- {
11
- plugins: [
12
- "@babel/plugin-transform-modules-commonjs",
13
- "@babel/plugin-transform-classes"
14
- ]
15
- },
16
- (err, { code }) => {
17
- if (err) {
18
- console.error("error", err);
19
- }
20
- if (err)
21
- rej(err);
22
- res(code);
23
- }
24
- );
25
- });
26
- }
27
6
  async function nativeBabelFlowTransform(input) {
28
7
  return await new Promise((res, rej) => {
29
8
  babel.transform(
@@ -39,57 +18,22 @@ async function nativeBabelFlowTransform(input) {
39
18
  );
40
19
  });
41
20
  }
21
+ const prebuiltDir = join(process.cwd(), "testing-area");
22
+ const prebuiltFiles = {
23
+ react: join(prebuiltDir, "react.js"),
24
+ reactJSXRuntime: join(prebuiltDir, "react-jsx-runtime.js"),
25
+ reactNative: join(prebuiltDir, "react-native.js")
26
+ };
42
27
  async function nativePrebuild() {
43
28
  if (process.env.SKIP_PREBUILD_RN) {
44
- console.log(`\u26A0\uFE0F skipping pre build of rn`);
45
29
  return;
46
30
  }
47
31
  console.log(`Prebuilding React Native (one time cost...)`);
48
- const outdir = join(process.cwd(), "testing-area");
49
32
  await Promise.all([
50
- // react
51
33
  build({
52
34
  bundle: true,
53
- entryPoints: ["react"],
54
- outfile: join(outdir, "react.js"),
55
- format: "cjs",
56
- target: "node20",
57
- jsx: "transform",
58
- jsxFactory: "react",
59
- allowOverwrite: true,
60
- platform: "node",
61
- define: {
62
- __DEV__: "true",
63
- "process.env.NODE_ENV": `"development"`
64
- },
65
- logLevel: "warning",
66
- resolveExtensions: extensions
67
- }),
68
- // react-jsx-runtime
69
- build({
70
- bundle: true,
71
- entryPoints: ["react/jsx-runtime"],
72
- outfile: join(outdir, "react-jsx-runtime.js"),
73
- format: "cjs",
74
- target: "node20",
75
- jsx: "transform",
76
- jsxFactory: "react",
77
- external: ["react"],
78
- allowOverwrite: true,
79
- platform: "node",
80
- define: {
81
- // metro serves this in production mode
82
- __DEV__: "false",
83
- "process.env.NODE_ENV": `"production"`
84
- },
85
- logLevel: "warning",
86
- resolveExtensions: extensions
87
- }),
88
- // react native
89
- build({
90
- bundle: true,
91
- entryPoints: ["/Users/n8/tamagui/node_modules/react-native/index.js"],
92
- outfile: join(outdir, "react-native.js"),
35
+ entryPoints: [require.resolve("react-native")],
36
+ outfile: prebuiltFiles.reactNative,
93
37
  format: "cjs",
94
38
  target: "node20",
95
39
  jsx: "transform",
@@ -110,7 +54,6 @@ async function nativePrebuild() {
110
54
  },
111
55
  logLevel: "warning",
112
56
  resolveExtensions: extensions,
113
- external: ["react", "react/jsx-runtime.js", "react/jsx-runtime"],
114
57
  plugins: [
115
58
  {
116
59
  name: "remove-flow",
@@ -144,12 +87,12 @@ async function nativePrebuild() {
144
87
  }
145
88
  }
146
89
  ]
147
- })
90
+ }),
91
+ ,
148
92
  ]);
149
93
  }
150
94
  export {
151
- nativeBabelFlowTransform,
152
- nativeBabelTransform,
153
- nativePrebuild
95
+ nativePrebuild,
96
+ prebuiltFiles
154
97
  };
155
98
  //# sourceMappingURL=nativePrebuild.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativePrebuild.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAErB,YAAY,WAAW;AACvB,SAAS,aAAa;AAEtB,SAAS,kBAAkB;AAE3B,eAAe,yBAAyB,OAAe;AACrD,SAAO,MAAM,IAAI,QAAgB,CAAC,KAAK,QAAQ;AAC7C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,QACE,SAAS,CAAC,wCAAwC;AAAA,MACpD;AAAA,MACA,CAAC,KAAU,EAAE,KAAK,MAAM;AACtB,YAAI;AAAK,cAAI,GAAG;AAChB,YAAI,IAAI;AAAA,MACV;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,MAAM,cAAc,KAAK,QAAQ,IAAI,GAAG,cAAc;AAC/C,MAAM,gBAAgB;AAAA,EAC3B,OAAO,KAAK,aAAa,UAAU;AAAA,EACnC,iBAAiB,KAAK,aAAa,sBAAsB;AAAA,EACzD,aAAa,KAAK,aAAa,iBAAiB;AAClD;AAEA,eAAsB,iBAAiB;AA8BrC,MAAI,QAAQ,IAAI,kBAAkB;AAChC;AAAA,EACF;AAEA,UAAQ,IAAI,6CAA6C;AAEzD,QAAM,QAAQ,IAAI;AAAA,IAChB,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,aAAa,CAAC,gBAAgB,cAAc,CAAC;AAAA,MAC7C,SAAS,cAAc;AAAA,MACvB,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,wBAAwB;AAAA;AAAA,QAExB,+CAA+C,KAAK,UAAU,MAAM;AAAA,MACtE;AAAA,MACA,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,SAAS;AAAA,QACP;AAAA,UACE,MAAM;AAAA,UACN,MAAMA,QAAO;AACX,YAAAA,OAAM;AAAA,cACJ;AAAA,gBACE,QAAQ;AAAA,cACV;AAAA,cACA,OAAO,UAAU;AACf,uBAAO;AAAA,kBACL,MAAM,gBAAgB,0BAA0B;AAAA,gBAClD;AAAA,cACF;AAAA,YACF;AAEA,YAAAA,OAAM;AAAA,cACJ;AAAA,gBACE,QAAQ;AAAA,cACV;AAAA,cACA,OAAO,UAAU;AACf,oBACE,CAAC,MAAM,KAAK,SAAS,cAAc,KACnC,CAAC,MAAM,KAAK,SAAS,iBAAiB,GACtC;AACA;AAAA,gBACF;AAEA,sBAAM,OAAO,MAAM,SAAS,MAAM,MAAM,OAAO;AAG/C,sBAAM,WAAW,MAAM,yBAAyB,IAAI;AAEpD,uBAAO;AAAA,kBACL,UAAU;AAAA,kBACV,QAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,IAED;AAAA,EACF,CAAC;AACH;",
5
5
  "names": ["build"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/vite-plugin",
3
- "version": "1.52.8",
3
+ "version": "1.53.0",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -25,26 +25,28 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
+ "@babel/core": "^7.21.8",
28
29
  "@babel/plugin-transform-classes": "^7.22.6",
29
30
  "@babel/plugin-transform-modules-commonjs": "^7.22.5",
30
- "@bunchtogether/vite-plugin-flow": "^1.0.2",
31
31
  "@rollup/plugin-babel": "^6.0.3",
32
- "@rollup/plugin-commonjs": "^24.0.1",
32
+ "@rollup/plugin-commonjs": "^25.0.4",
33
33
  "@rollup/plugin-node-resolve": "^15.0.1",
34
- "@tamagui/fake-react-native": "1.52.8",
35
- "@tamagui/proxy-worm": "1.52.8",
36
- "@tamagui/react-native-svg": "1.52.8",
37
- "@tamagui/static": "1.52.8",
34
+ "@tamagui/fake-react-native": "1.53.0",
35
+ "@tamagui/proxy-worm": "1.53.0",
36
+ "@tamagui/react-native-svg": "1.53.0",
37
+ "@tamagui/static": "1.53.0",
38
38
  "esbuild": "^0.19.0",
39
+ "esm-resolve": "^1.0.8",
39
40
  "fs-extra": "^11.1.0",
40
41
  "lodash": "^4.17.21",
41
42
  "micromatch": ">=4.0.0",
42
43
  "outdent": "^0.8.0",
43
44
  "rollup": ">=3.7.0",
44
- "vite-plugin-commonjs-externals": "^0.1.3"
45
+ "vite-plugin-commonjs-externals": "^0.1.3",
46
+ "vite-plugin-externals": "^0.6.2"
45
47
  },
46
48
  "devDependencies": {
47
- "@tamagui/build": "1.52.8"
49
+ "@tamagui/build": "1.53.0"
48
50
  },
49
51
  "publishConfig": {
50
52
  "access": "public"
@@ -0,0 +1,31 @@
1
+ import { join, relative } from 'path'
2
+
3
+ import resolve from 'esm-resolve'
4
+ import { realpath } from 'fs-extra'
5
+
6
+ export async function getVitePath(
7
+ importer: string,
8
+ moduleName: string,
9
+ absolute = false
10
+ ) {
11
+ if (moduleName[0] === '.') {
12
+ // hardcode for now. :/
13
+ return join(`apps/tamastack/src`, moduleName) + '.js'
14
+ } else {
15
+ const sourceFile = join(process.cwd(), 'index.js')
16
+ const resolved = resolve(sourceFile)(moduleName)
17
+ // figure out symlinks
18
+ if (!resolved) {
19
+ throw new Error(`❌ cant find`)
20
+ }
21
+ const real = await realpath(resolved)
22
+ let id = real
23
+ if (!absolute) {
24
+ id = relative(importer, real)
25
+ }
26
+ if (id.endsWith(`/react/jsx-dev-runtime.js`)) {
27
+ id = 'react/jsx-runtime'
28
+ }
29
+ return id
30
+ }
31
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './plugin'
2
2
  export * from './extract'
3
3
  export * from './nativePlugin'
4
+ export * from './getVitePath'
4
5
  export * from './nativePrebuild'