@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.
- package/dist/cjs/getVitePath.js +61 -0
- package/dist/cjs/getVitePath.js.map +6 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/nativePlugin.js +130 -36
- package/dist/cjs/nativePlugin.js.map +2 -2
- package/dist/cjs/nativePrebuild.js +14 -72
- package/dist/cjs/nativePrebuild.js.map +1 -1
- package/dist/esm/getVitePath.js +27 -0
- package/dist/esm/getVitePath.js.map +6 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/nativePlugin.js +122 -29
- package/dist/esm/nativePlugin.js.map +1 -1
- package/dist/esm/nativePrebuild.js +12 -69
- package/dist/esm/nativePrebuild.js.map +1 -1
- package/package.json +11 -9
- package/src/getVitePath.ts +31 -0
- package/src/index.ts +1 -0
- package/src/nativePlugin.ts +239 -56
- package/src/nativePrebuild.ts +38 -68
- package/types/getVitePath.d.ts +2 -0
- package/types/getVitePath.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/nativePlugin.d.ts +1 -0
- package/types/nativePlugin.d.ts.map +1 -1
- package/types/nativePrebuild.d.ts +5 -2
- package/types/nativePrebuild.d.ts.map +1 -1
package/dist/esm/nativePlugin.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import {
|
|
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.
|
|
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.
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
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": "AAAA,SAAS,
|
|
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:
|
|
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
|
-
|
|
152
|
-
|
|
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": "AAAA,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAErB,YAAY,WAAW;AACvB,SAAS,aAAa;AAEtB,SAAS,kBAAkB;AAE3B,
|
|
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.
|
|
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": "^
|
|
32
|
+
"@rollup/plugin-commonjs": "^25.0.4",
|
|
33
33
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
34
|
-
"@tamagui/fake-react-native": "1.
|
|
35
|
-
"@tamagui/proxy-worm": "1.
|
|
36
|
-
"@tamagui/react-native-svg": "1.
|
|
37
|
-
"@tamagui/static": "1.
|
|
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.
|
|
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
|
+
}
|