tamagui-loader 1.82.7 → 1.82.9

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.
@@ -25,7 +25,10 @@ __export(TamaguiPlugin_exports, {
25
25
  TamaguiPlugin: () => TamaguiPlugin
26
26
  });
27
27
  module.exports = __toCommonJS(TamaguiPlugin_exports);
28
- var import_static = require("@tamagui/static");
28
+ var import_fs = require("fs"), import_path = __toESM(require("path")), import_static = require("@tamagui/static"), import_esm_resolve = __toESM(require("esm-resolve")), import_webpack = __toESM(require("webpack")), import_shouldExclude = require("./shouldExclude");
29
+ const dir = __dirname, resolver = (0, import_esm_resolve.default)((0, import_path.join)(dir, "index.js"), {
30
+ constraints: "node"
31
+ });
29
32
  class TamaguiPlugin {
30
33
  constructor(options = {
31
34
  platform: "web",
@@ -34,15 +37,91 @@ class TamaguiPlugin {
34
37
  this.options = options;
35
38
  }
36
39
  pluginName = "TamaguiPlugin";
40
+ resolveEsm = (relativePath, onlyRequire = !1) => {
41
+ if (this.options.isServer || onlyRequire)
42
+ return require.resolve(relativePath);
43
+ const esm = resolver(relativePath);
44
+ return esm ? import_path.default.join(dir, esm) : require.resolve(relativePath);
45
+ };
46
+ safeResolves = (resolves, multiple = !1) => {
47
+ var _a;
48
+ const res = [];
49
+ for (const [out, mod] of resolves) {
50
+ if (out.endsWith("$")) {
51
+ res.push([out, mod]);
52
+ continue;
53
+ }
54
+ try {
55
+ res.push([out, this.resolveEsm(mod)]), multiple && res.push([out, this.resolveEsm(mod, !0)]);
56
+ } catch (err) {
57
+ if (out.includes("@gorhom/bottom-sheet"))
58
+ continue;
59
+ (_a = process.env.DEBUG) != null && _a.startsWith("tamagui") && console.info(` withTamagui skipping resolving ${out}`, err);
60
+ }
61
+ }
62
+ return res;
63
+ };
64
+ get componentsFullPaths() {
65
+ return this.safeResolves(
66
+ this.options.components.map(
67
+ (moduleName) => [moduleName, moduleName]
68
+ ),
69
+ !0
70
+ );
71
+ }
72
+ get componentsBaseDirs() {
73
+ return this.componentsFullPaths.map(([_, fullPath]) => {
74
+ let rootPath = (0, import_path.dirname)(fullPath);
75
+ for (; rootPath.length > 1; ) {
76
+ const pkg = (0, import_path.join)(rootPath, "package.json");
77
+ if ((0, import_fs.existsSync)(pkg))
78
+ return rootPath;
79
+ rootPath = (0, import_path.join)(rootPath, "..");
80
+ }
81
+ throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
82
+ });
83
+ }
84
+ isInComponentModule = (fullPath) => this.componentsBaseDirs.some(
85
+ (componentDir) => fullPath.startsWith(componentDir)
86
+ );
87
+ get defaultAliases() {
88
+ return Object.fromEntries(
89
+ this.safeResolves([
90
+ ["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
91
+ ["@tamagui/core", "@tamagui/core"],
92
+ ["@tamagui/web", "@tamagui/web"],
93
+ // web specific light react-native-svg, optional, can use svgs but had issues with compat
94
+ ["react-native-svg", "@tamagui/react-native-svg"],
95
+ // fixes https://github.com/kentcdodds/mdx-bundler/issues/143
96
+ ["react/jsx-runtime.js", "react/jsx-runtime"],
97
+ ["react/jsx-runtime", "react/jsx-runtime"],
98
+ ["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
99
+ ["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
100
+ ["react-native-reanimated", "react-native-reanimated"],
101
+ ["react-native$", "react-native-web"],
102
+ ["react-native-web$", "react-native-web"],
103
+ ["@testing-library/react-native", "@tamagui/proxy-worm"],
104
+ ["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
105
+ // fix reanimated 3
106
+ ["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"]
107
+ ])
108
+ );
109
+ }
37
110
  apply(compiler) {
38
111
  var _a;
39
- compiler.watchMode && !this.options.disableWatchConfig && (0, import_static.watchTamaguiConfig)(this.options).then((watcher) => {
112
+ if (compiler.watchMode && !this.options.disableWatchConfig && (0, import_static.watchTamaguiConfig)(this.options).then((watcher) => {
40
113
  process.once("exit", () => {
41
114
  watcher.dispose();
42
115
  });
43
- }), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
116
+ }), this.options.exclude || (this.options.exclude = (path2) => this.isInComponentModule(path2) ? !1 : (0, import_shouldExclude.shouldExclude)(path2)), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
44
117
  await (0, import_static.loadTamagui)(this.options);
45
- }), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
118
+ }), console.info(
119
+ `
120
+
121
+ Note: the [ignored-bare-import] warning for some Tamagui packages is ignorable, it's an artifact of esbuild that we will eventually find a decent fix for.
122
+
123
+ `
124
+ ), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
46
125
  nmf.hooks.createModule.tap(
47
126
  this.pluginName,
48
127
  // @ts-expect-error CreateData is typed as 'object'...
@@ -51,7 +130,28 @@ class TamaguiPlugin {
51
130
  (_a2 = createData.matchResource) != null && _a2.endsWith(".tamagui.css") && (createData.settings.sideEffects = !0);
52
131
  }
53
132
  );
54
- }), this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
133
+ }), !this.options.disableAliases) {
134
+ const existingAlias = compiler.options.resolve.alias;
135
+ Array.isArray(existingAlias) || typeof existingAlias == "object" && Object.assign(existingAlias, this.defaultAliases);
136
+ }
137
+ const excludeExports = this.options.excludeReactNativeWebExports;
138
+ if (excludeExports && Array.isArray(excludeExports))
139
+ try {
140
+ const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join("|")}).*js`, regex = new RegExp(regexStr);
141
+ compiler.hooks.environment.tap("MyPlugin", () => {
142
+ new import_webpack.default.NormalModuleReplacementPlugin(
143
+ regex,
144
+ this.resolveEsm("@tamagui/proxy-worm")
145
+ ).apply(compiler);
146
+ });
147
+ } catch {
148
+ console.warn(
149
+ `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
150
+ ", "
151
+ )}`
152
+ );
153
+ }
154
+ this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
55
155
  compilation.hooks.processAssets.tap(this.pluginName, (assets) => {
56
156
  try {
57
157
  const cssFiles = Object.keys(assets).filter((asset) => asset.endsWith(".css"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/TamaguiPlugin.ts"],
4
- "mappings": "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",
5
- "names": ["_a"]
4
+ "mappings": "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",
5
+ "names": ["buildResolver", "path", "_a", "webpack"]
6
6
  }
@@ -26,7 +26,10 @@ __export(TamaguiPlugin_exports, {
26
26
  TamaguiPlugin: () => TamaguiPlugin
27
27
  });
28
28
  module.exports = __toCommonJS(TamaguiPlugin_exports);
29
- var import_static = require("@tamagui/static");
29
+ var import_fs = require("fs"), import_path = __toESM(require("path")), import_static = require("@tamagui/static"), import_esm_resolve = __toESM(require("esm-resolve")), import_webpack = __toESM(require("webpack")), import_shouldExclude = require("./shouldExclude");
30
+ const dir = __dirname, resolver = (0, import_esm_resolve.default)((0, import_path.join)(dir, "index.js"), {
31
+ constraints: "node"
32
+ });
30
33
  class TamaguiPlugin {
31
34
  constructor(options = {
32
35
  platform: "web",
@@ -34,16 +37,92 @@ class TamaguiPlugin {
34
37
  }) {
35
38
  this.options = options;
36
39
  this.pluginName = "TamaguiPlugin";
40
+ this.resolveEsm = (relativePath, onlyRequire = !1) => {
41
+ if (this.options.isServer || onlyRequire)
42
+ return require.resolve(relativePath);
43
+ const esm = resolver(relativePath);
44
+ return esm ? import_path.default.join(dir, esm) : require.resolve(relativePath);
45
+ };
46
+ this.safeResolves = (resolves, multiple = !1) => {
47
+ var _a;
48
+ const res = [];
49
+ for (const [out, mod] of resolves) {
50
+ if (out.endsWith("$")) {
51
+ res.push([out, mod]);
52
+ continue;
53
+ }
54
+ try {
55
+ res.push([out, this.resolveEsm(mod)]), multiple && res.push([out, this.resolveEsm(mod, !0)]);
56
+ } catch (err) {
57
+ if (out.includes("@gorhom/bottom-sheet"))
58
+ continue;
59
+ (_a = process.env.DEBUG) != null && _a.startsWith("tamagui") && console.info(` withTamagui skipping resolving ${out}`, err);
60
+ }
61
+ }
62
+ return res;
63
+ };
64
+ this.isInComponentModule = (fullPath) => this.componentsBaseDirs.some(
65
+ (componentDir) => fullPath.startsWith(componentDir)
66
+ );
67
+ }
68
+ get componentsFullPaths() {
69
+ return this.safeResolves(
70
+ this.options.components.map(
71
+ (moduleName) => [moduleName, moduleName]
72
+ ),
73
+ !0
74
+ );
75
+ }
76
+ get componentsBaseDirs() {
77
+ return this.componentsFullPaths.map(([_, fullPath]) => {
78
+ let rootPath = (0, import_path.dirname)(fullPath);
79
+ for (; rootPath.length > 1; ) {
80
+ const pkg = (0, import_path.join)(rootPath, "package.json");
81
+ if ((0, import_fs.existsSync)(pkg))
82
+ return rootPath;
83
+ rootPath = (0, import_path.join)(rootPath, "..");
84
+ }
85
+ throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
86
+ });
87
+ }
88
+ get defaultAliases() {
89
+ return Object.fromEntries(
90
+ this.safeResolves([
91
+ ["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
92
+ ["@tamagui/core", "@tamagui/core"],
93
+ ["@tamagui/web", "@tamagui/web"],
94
+ // web specific light react-native-svg, optional, can use svgs but had issues with compat
95
+ ["react-native-svg", "@tamagui/react-native-svg"],
96
+ // fixes https://github.com/kentcdodds/mdx-bundler/issues/143
97
+ ["react/jsx-runtime.js", "react/jsx-runtime"],
98
+ ["react/jsx-runtime", "react/jsx-runtime"],
99
+ ["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
100
+ ["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
101
+ ["react-native-reanimated", "react-native-reanimated"],
102
+ ["react-native$", "react-native-web"],
103
+ ["react-native-web$", "react-native-web"],
104
+ ["@testing-library/react-native", "@tamagui/proxy-worm"],
105
+ ["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
106
+ // fix reanimated 3
107
+ ["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"]
108
+ ])
109
+ );
37
110
  }
38
111
  apply(compiler) {
39
112
  var _a;
40
- compiler.watchMode && !this.options.disableWatchConfig && (0, import_static.watchTamaguiConfig)(this.options).then((watcher) => {
113
+ if (compiler.watchMode && !this.options.disableWatchConfig && (0, import_static.watchTamaguiConfig)(this.options).then((watcher) => {
41
114
  process.once("exit", () => {
42
115
  watcher.dispose();
43
116
  });
44
- }), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
117
+ }), this.options.exclude || (this.options.exclude = (path2) => this.isInComponentModule(path2) ? !1 : (0, import_shouldExclude.shouldExclude)(path2)), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
45
118
  await (0, import_static.loadTamagui)(this.options);
46
- }), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
119
+ }), console.info(
120
+ `
121
+
122
+ Note: the [ignored-bare-import] warning for some Tamagui packages is ignorable, it's an artifact of esbuild that we will eventually find a decent fix for.
123
+
124
+ `
125
+ ), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
47
126
  nmf.hooks.createModule.tap(
48
127
  this.pluginName,
49
128
  // @ts-expect-error CreateData is typed as 'object'...
@@ -52,7 +131,28 @@ class TamaguiPlugin {
52
131
  (_a2 = createData.matchResource) != null && _a2.endsWith(".tamagui.css") && (createData.settings.sideEffects = !0);
53
132
  }
54
133
  );
55
- }), this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
134
+ }), !this.options.disableAliases) {
135
+ const existingAlias = compiler.options.resolve.alias;
136
+ Array.isArray(existingAlias) || typeof existingAlias == "object" && Object.assign(existingAlias, this.defaultAliases);
137
+ }
138
+ const excludeExports = this.options.excludeReactNativeWebExports;
139
+ if (excludeExports && Array.isArray(excludeExports))
140
+ try {
141
+ const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join("|")}).*js`, regex = new RegExp(regexStr);
142
+ compiler.hooks.environment.tap("MyPlugin", () => {
143
+ new import_webpack.default.NormalModuleReplacementPlugin(
144
+ regex,
145
+ this.resolveEsm("@tamagui/proxy-worm")
146
+ ).apply(compiler);
147
+ });
148
+ } catch {
149
+ console.warn(
150
+ `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
151
+ ", "
152
+ )}`
153
+ );
154
+ }
155
+ this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
56
156
  compilation.hooks.processAssets.tap(this.pluginName, (assets) => {
57
157
  try {
58
158
  const cssFiles = Object.keys(assets).filter((asset) => asset.endsWith(".css"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/TamaguiPlugin.ts"],
4
- "mappings": "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",
5
- "names": ["_a"]
4
+ "mappings": "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",
5
+ "names": ["buildResolver", "path", "_a", "webpack"]
6
6
  }
@@ -1,8 +1,16 @@
1
+ import { existsSync } from "fs";
2
+ import path, { dirname, join } from "path";
1
3
  import {
2
4
  loadTamagui,
3
5
  minifyCSS,
4
6
  watchTamaguiConfig
5
7
  } from "@tamagui/static";
8
+ import buildResolver from "esm-resolve";
9
+ import webpack from "webpack";
10
+ import { shouldExclude } from "./shouldExclude";
11
+ const dir = __dirname, resolver = buildResolver(join(dir, "index.js"), {
12
+ constraints: "node"
13
+ });
6
14
  class TamaguiPlugin {
7
15
  constructor(options = {
8
16
  platform: "web",
@@ -11,14 +19,89 @@ class TamaguiPlugin {
11
19
  this.options = options;
12
20
  }
13
21
  pluginName = "TamaguiPlugin";
22
+ resolveEsm = (relativePath, onlyRequire = !1) => {
23
+ if (this.options.isServer || onlyRequire)
24
+ return require.resolve(relativePath);
25
+ const esm = resolver(relativePath);
26
+ return esm ? path.join(dir, esm) : require.resolve(relativePath);
27
+ };
28
+ safeResolves = (resolves, multiple = !1) => {
29
+ const res = [];
30
+ for (const [out, mod] of resolves) {
31
+ if (out.endsWith("$")) {
32
+ res.push([out, mod]);
33
+ continue;
34
+ }
35
+ try {
36
+ res.push([out, this.resolveEsm(mod)]), multiple && res.push([out, this.resolveEsm(mod, !0)]);
37
+ } catch (err) {
38
+ if (out.includes("@gorhom/bottom-sheet"))
39
+ continue;
40
+ process.env.DEBUG?.startsWith("tamagui") && console.info(` withTamagui skipping resolving ${out}`, err);
41
+ }
42
+ }
43
+ return res;
44
+ };
45
+ get componentsFullPaths() {
46
+ return this.safeResolves(
47
+ this.options.components.map(
48
+ (moduleName) => [moduleName, moduleName]
49
+ ),
50
+ !0
51
+ );
52
+ }
53
+ get componentsBaseDirs() {
54
+ return this.componentsFullPaths.map(([_, fullPath]) => {
55
+ let rootPath = dirname(fullPath);
56
+ for (; rootPath.length > 1; ) {
57
+ const pkg = join(rootPath, "package.json");
58
+ if (existsSync(pkg))
59
+ return rootPath;
60
+ rootPath = join(rootPath, "..");
61
+ }
62
+ throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
63
+ });
64
+ }
65
+ isInComponentModule = (fullPath) => this.componentsBaseDirs.some(
66
+ (componentDir) => fullPath.startsWith(componentDir)
67
+ );
68
+ get defaultAliases() {
69
+ return Object.fromEntries(
70
+ this.safeResolves([
71
+ ["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
72
+ ["@tamagui/core", "@tamagui/core"],
73
+ ["@tamagui/web", "@tamagui/web"],
74
+ // web specific light react-native-svg, optional, can use svgs but had issues with compat
75
+ ["react-native-svg", "@tamagui/react-native-svg"],
76
+ // fixes https://github.com/kentcdodds/mdx-bundler/issues/143
77
+ ["react/jsx-runtime.js", "react/jsx-runtime"],
78
+ ["react/jsx-runtime", "react/jsx-runtime"],
79
+ ["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
80
+ ["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
81
+ ["react-native-reanimated", "react-native-reanimated"],
82
+ ["react-native$", "react-native-web"],
83
+ ["react-native-web$", "react-native-web"],
84
+ ["@testing-library/react-native", "@tamagui/proxy-worm"],
85
+ ["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
86
+ // fix reanimated 3
87
+ ["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"]
88
+ ])
89
+ );
90
+ }
14
91
  apply(compiler) {
15
- compiler.watchMode && !this.options.disableWatchConfig && watchTamaguiConfig(this.options).then((watcher) => {
92
+ if (compiler.watchMode && !this.options.disableWatchConfig && watchTamaguiConfig(this.options).then((watcher) => {
16
93
  process.once("exit", () => {
17
94
  watcher.dispose();
18
95
  });
19
- }), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
96
+ }), this.options.exclude || (this.options.exclude = (path2) => this.isInComponentModule(path2) ? !1 : shouldExclude(path2)), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
20
97
  await loadTamagui(this.options);
21
- }), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
98
+ }), console.info(
99
+ `
100
+
101
+ Note: the [ignored-bare-import] warning for some Tamagui packages is ignorable, it's an artifact of esbuild that we will eventually find a decent fix for.
102
+
103
+ `
104
+ ), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
22
105
  nmf.hooks.createModule.tap(
23
106
  this.pluginName,
24
107
  // @ts-expect-error CreateData is typed as 'object'...
@@ -26,7 +109,28 @@ class TamaguiPlugin {
26
109
  createData.matchResource?.endsWith(".tamagui.css") && (createData.settings.sideEffects = !0);
27
110
  }
28
111
  );
29
- }), this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
112
+ }), !this.options.disableAliases) {
113
+ const existingAlias = compiler.options.resolve.alias;
114
+ Array.isArray(existingAlias) || typeof existingAlias == "object" && Object.assign(existingAlias, this.defaultAliases);
115
+ }
116
+ const excludeExports = this.options.excludeReactNativeWebExports;
117
+ if (excludeExports && Array.isArray(excludeExports))
118
+ try {
119
+ const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join("|")}).*js`, regex = new RegExp(regexStr);
120
+ compiler.hooks.environment.tap("MyPlugin", () => {
121
+ new webpack.NormalModuleReplacementPlugin(
122
+ regex,
123
+ this.resolveEsm("@tamagui/proxy-worm")
124
+ ).apply(compiler);
125
+ });
126
+ } catch {
127
+ console.warn(
128
+ `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
129
+ ", "
130
+ )}`
131
+ );
132
+ }
133
+ this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
30
134
  compilation.hooks.processAssets.tap(this.pluginName, (assets) => {
31
135
  try {
32
136
  const cssFiles = Object.keys(assets).filter((asset) => asset.endsWith(".css"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/TamaguiPlugin.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["path"]
6
6
  }
@@ -1,8 +1,16 @@
1
+ import { existsSync } from "fs";
2
+ import path, { dirname, join } from "path";
1
3
  import {
2
4
  loadTamagui,
3
5
  minifyCSS,
4
6
  watchTamaguiConfig
5
7
  } from "@tamagui/static";
8
+ import buildResolver from "esm-resolve";
9
+ import webpack from "webpack";
10
+ import { shouldExclude } from "./shouldExclude";
11
+ const dir = __dirname, resolver = buildResolver(join(dir, "index.js"), {
12
+ constraints: "node"
13
+ });
6
14
  class TamaguiPlugin {
7
15
  constructor(options = {
8
16
  platform: "web",
@@ -10,15 +18,90 @@ class TamaguiPlugin {
10
18
  }) {
11
19
  this.options = options;
12
20
  this.pluginName = "TamaguiPlugin";
21
+ this.resolveEsm = (relativePath, onlyRequire = !1) => {
22
+ if (this.options.isServer || onlyRequire)
23
+ return require.resolve(relativePath);
24
+ const esm = resolver(relativePath);
25
+ return esm ? path.join(dir, esm) : require.resolve(relativePath);
26
+ };
27
+ this.safeResolves = (resolves, multiple = !1) => {
28
+ const res = [];
29
+ for (const [out, mod] of resolves) {
30
+ if (out.endsWith("$")) {
31
+ res.push([out, mod]);
32
+ continue;
33
+ }
34
+ try {
35
+ res.push([out, this.resolveEsm(mod)]), multiple && res.push([out, this.resolveEsm(mod, !0)]);
36
+ } catch (err) {
37
+ if (out.includes("@gorhom/bottom-sheet"))
38
+ continue;
39
+ process.env.DEBUG?.startsWith("tamagui") && console.info(` withTamagui skipping resolving ${out}`, err);
40
+ }
41
+ }
42
+ return res;
43
+ };
44
+ this.isInComponentModule = (fullPath) => this.componentsBaseDirs.some(
45
+ (componentDir) => fullPath.startsWith(componentDir)
46
+ );
47
+ }
48
+ get componentsFullPaths() {
49
+ return this.safeResolves(
50
+ this.options.components.map(
51
+ (moduleName) => [moduleName, moduleName]
52
+ ),
53
+ !0
54
+ );
55
+ }
56
+ get componentsBaseDirs() {
57
+ return this.componentsFullPaths.map(([_, fullPath]) => {
58
+ let rootPath = dirname(fullPath);
59
+ for (; rootPath.length > 1; ) {
60
+ const pkg = join(rootPath, "package.json");
61
+ if (existsSync(pkg))
62
+ return rootPath;
63
+ rootPath = join(rootPath, "..");
64
+ }
65
+ throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
66
+ });
67
+ }
68
+ get defaultAliases() {
69
+ return Object.fromEntries(
70
+ this.safeResolves([
71
+ ["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
72
+ ["@tamagui/core", "@tamagui/core"],
73
+ ["@tamagui/web", "@tamagui/web"],
74
+ // web specific light react-native-svg, optional, can use svgs but had issues with compat
75
+ ["react-native-svg", "@tamagui/react-native-svg"],
76
+ // fixes https://github.com/kentcdodds/mdx-bundler/issues/143
77
+ ["react/jsx-runtime.js", "react/jsx-runtime"],
78
+ ["react/jsx-runtime", "react/jsx-runtime"],
79
+ ["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
80
+ ["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
81
+ ["react-native-reanimated", "react-native-reanimated"],
82
+ ["react-native$", "react-native-web"],
83
+ ["react-native-web$", "react-native-web"],
84
+ ["@testing-library/react-native", "@tamagui/proxy-worm"],
85
+ ["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
86
+ // fix reanimated 3
87
+ ["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"]
88
+ ])
89
+ );
13
90
  }
14
91
  apply(compiler) {
15
- compiler.watchMode && !this.options.disableWatchConfig && watchTamaguiConfig(this.options).then((watcher) => {
92
+ if (compiler.watchMode && !this.options.disableWatchConfig && watchTamaguiConfig(this.options).then((watcher) => {
16
93
  process.once("exit", () => {
17
94
  watcher.dispose();
18
95
  });
19
- }), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
96
+ }), this.options.exclude || (this.options.exclude = (path2) => this.isInComponentModule(path2) ? !1 : shouldExclude(path2)), compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
20
97
  await loadTamagui(this.options);
21
- }), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
98
+ }), console.info(
99
+ `
100
+
101
+ Note: the [ignored-bare-import] warning for some Tamagui packages is ignorable, it's an artifact of esbuild that we will eventually find a decent fix for.
102
+
103
+ `
104
+ ), compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
22
105
  nmf.hooks.createModule.tap(
23
106
  this.pluginName,
24
107
  // @ts-expect-error CreateData is typed as 'object'...
@@ -26,7 +109,28 @@ class TamaguiPlugin {
26
109
  createData.matchResource?.endsWith(".tamagui.css") && (createData.settings.sideEffects = !0);
27
110
  }
28
111
  );
29
- }), this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
112
+ }), !this.options.disableAliases) {
113
+ const existingAlias = compiler.options.resolve.alias;
114
+ Array.isArray(existingAlias) || typeof existingAlias == "object" && Object.assign(existingAlias, this.defaultAliases);
115
+ }
116
+ const excludeExports = this.options.excludeReactNativeWebExports;
117
+ if (excludeExports && Array.isArray(excludeExports))
118
+ try {
119
+ const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join("|")}).*js`, regex = new RegExp(regexStr);
120
+ compiler.hooks.environment.tap("MyPlugin", () => {
121
+ new webpack.NormalModuleReplacementPlugin(
122
+ regex,
123
+ this.resolveEsm("@tamagui/proxy-worm")
124
+ ).apply(compiler);
125
+ });
126
+ } catch {
127
+ console.warn(
128
+ `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
129
+ ", "
130
+ )}`
131
+ );
132
+ }
133
+ this.options.emitSingleCSSFile && (console.info(" \u27A1 [tamagui] \u{1F3A8} combining css into one file"), compiler.hooks.make.tap(this.pluginName, (compilation) => {
30
134
  compilation.hooks.processAssets.tap(this.pluginName, (assets) => {
31
135
  try {
32
136
  const cssFiles = Object.keys(assets).filter((asset) => asset.endsWith(".css"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/TamaguiPlugin.ts"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "AAAA,SAAS,kBAAkB;AAC3B,OAAO,QAAQ,SAAS,YAAY;AAEpC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,OAAO,mBAAmB;AAE1B,OAAO,aAAa;AAEpB,SAAS,qBAAqB;AAc9B,MAAM,MAAM,WACN,WAAW,cAAc,KAAK,KAAK,UAAU,GAAG;AAAA,EACpD,aAAa;AACf,CAAC;AAEM,MAAM,cAAc;AAAA,EAGzB,YACS,UAAyB;AAAA,IAC9B,UAAU;AAAA,IACV,YAAY,CAAC,eAAe;AAAA,EAC9B,GACA;AAJO;AAHT,sBAAa;AASb,sBAAa,CAAC,cAAsB,cAAc,OAAU;AAC1D,UAAI,KAAK,QAAQ,YAAY;AAC3B,eAAO,QAAQ,QAAQ,YAAY;AAErC,YAAM,MAAM,SAAS,YAAY;AACjC,aAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAI,QAAQ,QAAQ,YAAY;AAAA,IACjE;AAEA,wBAAe,CAAC,UAA8B,WAAW,OAAU;AACjE,YAAM,MAAkB,CAAC;AACzB,iBAAW,CAAC,KAAK,GAAG,KAAK,UAAU;AACjC,YAAI,IAAI,SAAS,GAAG,GAAG;AACrB,cAAI,KAAK,CAAC,KAAK,GAAG,CAAC;AACnB;AAAA,QACF;AACA,YAAI;AACF,cAAI,KAAK,CAAC,KAAK,KAAK,WAAW,GAAG,CAAC,CAAC,GAChC,YACF,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,KAAK,EAAI,CAAC,CAAC;AAAA,QAE9C,SAAS,KAAK;AACZ,cAAI,IAAI,SAAS,sBAAsB;AACrC;AAEF,UAAI,QAAQ,IAAI,OAAO,WAAW,SAAS,KACzC,QAAQ,KAAK,oCAAoC,GAAG,IAAI,GAAG;AAAA,QAE/D;AAAA,MACF;AACA,aAAO;AAAA,IACT;AA2BA,+BAAsB,CAAC,aACd,KAAK,mBAAmB;AAAA,MAAK,CAAC,iBACnC,SAAS,WAAW,YAAY;AAAA,IAClC;AAAA,EA9DC;AAAA,EAkCH,IAAI,sBAAsB;AACxB,WAAO,KAAK;AAAA,MACV,KAAK,QAAQ,WAAW;AAAA,QACtB,CAAC,eAAe,CAAC,YAAY,UAAU;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,qBAAqB;AACvB,WAAO,KAAK,oBAAoB,IAAI,CAAC,CAAC,GAAG,QAAQ,MAAM;AACrD,UAAI,WAAW,QAAQ,QAAkB;AACzC,aAAO,SAAS,SAAS,KAAG;AAC1B,cAAM,MAAM,KAAK,UAAU,cAAc;AAEzC,YADe,WAAW,GAAG;AAE3B,iBAAO;AAEP,mBAAW,KAAK,UAAU,IAAI;AAAA,MAElC;AACA,YAAM,IAAI,MAAM,iDAAiD,QAAQ,EAAE;AAAA,IAC7E,CAAC;AAAA,EACH;AAAA,EAQA,IAAI,iBAAiB;AACnB,WAAO,OAAO;AAAA,MACZ,KAAK,aAAa;AAAA,QAChB,CAAC,2BAA2B,yBAAyB;AAAA,QACrD,CAAC,iBAAiB,eAAe;AAAA,QACjC,CAAC,gBAAgB,cAAc;AAAA;AAAA,QAE/B,CAAC,oBAAoB,2BAA2B;AAAA;AAAA,QAEhD,CAAC,wBAAwB,mBAAmB;AAAA,QAC5C,CAAC,qBAAqB,mBAAmB;AAAA,QACzC,CAAC,4BAA4B,uBAAuB;AAAA,QACpD,CAAC,yBAAyB,uBAAuB;AAAA,QACjD,CAAC,2BAA2B,yBAAyB;AAAA,QACrD,CAAC,iBAAiB,kBAAkB;AAAA,QACpC,CAAC,qBAAqB,kBAAkB;AAAA,QACxC,CAAC,iCAAiC,qBAAqB;AAAA,QACvD,CAAC,yBAAyB,sBAAsB;AAAA;AAAA,QAEhD,CAAC,qDAAqD,qBAAqB;AAAA,MAC7E,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,UAAoB;AA0CxB,QAzCI,SAAS,aAAa,CAAC,KAAK,QAAQ,sBACjC,mBAAmB,KAAK,OAAO,EAAE,KAAK,CAAC,YAAY;AAEtD,cAAQ,KAAK,QAAQ,MAAM;AACzB,gBAAQ,QAAQ;AAAA,MAClB,CAAC;AAAA,IACH,CAAC,GAGE,KAAK,QAAQ,YAEhB,KAAK,QAAQ,UAAU,CAACA,UAClB,KAAK,oBAAoBA,KAAI,IACxB,KAEF,cAAcA,KAAI,IAI7B,SAAS,MAAM,UAAU,WAAW,KAAK,YAAY,YAAY;AAC/D,YAAM,YAAY,KAAK,OAAO;AAAA,IAChC,CAAC,GAED,QAAQ;AAAA,MACN;AAAA;AAAA;AAAA;AAAA;AAAA,IACF,GAGA,SAAS,MAAM,oBAAoB,IAAI,KAAK,YAAY,CAAC,QAAQ;AAC/D,UAAI,MAAM,aAAa;AAAA,QACrB,KAAK;AAAA;AAAA,QAEL,CAAC,eAAgF;AAC/E,UAAI,WAAW,eAAe,SAAS,cAAc,MACnD,WAAW,SAAS,cAAc;AAAA,QAEtC;AAAA,MACF;AAAA,IACF,CAAC,GAGG,CAAC,KAAK,QAAQ,gBAAgB;AAChC,YAAM,gBAAgB,SAAS,QAAQ,QAAQ;AAC/C,MAAI,MAAM,QAAQ,aAAa,KAEpB,OAAO,iBAAkB,YAClC,OAAO,OAAO,eAAe,KAAK,cAAc;AAAA,IAEpD;AAGA,UAAM,iBAAiB,KAAK,QAAQ;AACpC,QAAI,kBACE,MAAM,QAAQ,cAAc;AAC9B,UAAI;AACF,cAAM,WAAW,+BAA+B,eAAe,KAAK,GAAG,CAAC,SAClE,QAAQ,IAAI,OAAO,QAAQ;AAEjC,iBAAS,MAAM,YAAY,IAAI,YAAY,MAAM;AAO/C,UALqB,IAAI,QAAQ;AAAA,YAC/B;AAAA,YACA,KAAK,WAAW,qBAAqB;AAAA,UACvC,EAEa,MAAM,QAAQ;AAAA,QAC7B,CAAC;AAAA,MACH,QAAc;AACZ,gBAAQ;AAAA,UACN,2DAA2D,eAAe;AAAA,YACxE;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAIJ,IAAI,KAAK,QAAQ,sBACf,QAAQ,KAAK,4DAAgD,GAE7D,SAAS,MAAM,KAAK,IAAI,KAAK,YAAY,CAAC,gBAAgB;AACxD,kBAAY,MAAM,cAAc,IAAI,KAAK,YAAY,CAAC,WAAW;AAC/D,YAAI;AACF,gBAAM,WAAW,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,UAAU,MAAM,SAAS,MAAM,CAAC;AAC7E,cAAI,SAAS,WAAW;AACtB;AAGF,gBAAM,cAAc;AAAA,YAClB,SAAS,OAAO,CAAC,KAAK,SAAS;AAC7B,oBAAM,aAAa,YAAY,OAAO,IAAI,EAAE,OAAO;AACnD,qBAAO,GAAG,GAAG;AAAA,EAAK,UAAU;AAAA,YAC9B,GAAG,EAAE;AAAA,UACP;AAEA,qBAAW,CAAC,OAAO,OAAO,KAAK,SAAS,QAAQ;AAC9C,YAAI,QAAQ,IACV,YAAY;AAAA,cACV;AAAA,cACA,IAAI,SAAS,QAAQ,QAAQ,UAAU,EAAE;AAAA,YAC3C,KAEA,QAAQ,KAAK,yDAA6C,OAAO,EAAE,GAEnE,YAAY;AAAA,cACV;AAAA,cACA,IAAI,SAAS,QAAQ,QAAQ,UAAU,OAAO,KAAK,YAAY,IAAI,CAAC;AAAA,YACtE;AAAA,QAGN,SAAS,OAAY;AACnB,sBAAY,OAAO,KAAK,KAAK;AAAA,QAC/B;AAAA,MACF,CAAC;AAAA,IACH,CAAC,IAGH,SAAS,QAAQ,QAAQ,aAAa;AAAA,MACpC,GAAG,oBAAI,IAAI;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAI,SAAS,QAAQ,QAAQ,cAAc,CAAC;AAAA,MAC9C,CAAC;AAAA,IACH;AAGA,UAAM,aAAa,SAAS,QAAQ,QAAQ;AAQ5C,QAPI,eACF,SAAS,QAAQ,QAAQ,aAAa,MAAM,QAAQ,UAAU,IAC1D,aACA,CAAC,UAAU,GACV,KAAK,QAAQ,yBAAuB,WAAW,QAAQ,YAAY,IAGtE,CAAC,SAAS,QAAQ;AACpB;AAGF,UAAM,EAAE,SAAS,IAAI,KAAK,SAEpB,WAAW,SAAS,QAAQ,OAAO,OAEnC,QACH,SAAS,KAAK,CAAC,MAAO,OAAO,KAAM,YAAY,WAAW,IAAI,IAAI,IAAK,GACpE,SAAmB,UAEnB,cAAc,MAAM;AAAA,MACxB,CAAC,MAAM,GAAG,OAAO,EAAE,IAAI,WAAW,qBAAqB,EAAE,gBAAgB;AAAA,IAC3E,GAEM,gBAAgB;AAAA,MACpB,QAAQ,gBAAgB,gBAAgB;AAAA,MACxC,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,QAAQ,KAAK,QAAQ,WAAW,aAAa;AAAA,UAC7C,iBAAiB;AAAA,UACjB,mBAAmB;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,QAAQ,SAAS;AACzB,YAAM,gBAAgB;AAAA,QACpB,QAAQ,gBAAgB,gBAAgB;AAAA,QACxC,SAAS;AAAA,UACP,GAAG,KAAK;AAAA,UACR,qBAAqB;AAAA,QACvB;AAAA,MACF;AAEA,UAAI,gBAAgB;AAClB,iBAAS,KAAK;AAAA;AAAA,UAEZ,MAAM;AAAA,UACN,SAAS,KAAK,QAAQ;AAAA,UACtB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAClB;AAAA,UACA,KAAK,CAAC,aAAa;AAAA,QACrB,CAAC,GAGD,SAAS,KAAK;AAAA,UACZ,MAAM,KAAK,QAAQ,QAAQ;AAAA,UAC3B,SAAS,KAAK,QAAQ;AAAA,UACtB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAClB;AAAA,UACA,KAAK,CAAC,aAAa;AAAA,QACrB,CAAC;AAAA,eACQ,CAAC,KAAK,QAAQ,sBAAsB;AAC7C,cAAM,aAAa,cAAc,cAAc,IAAI,GAC7C,iBAAiB,cAAc,MAAM,UAAU,IAAI;AAEzD,cAAM,OAAO,YAAY,GAAG;AAAA,UAC1B,MAAM,KAAK,QAAQ,QAAQ;AAAA,UAC3B,SAAS,KAAK,QAAQ;AAAA,UACtB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAClB;AAAA,UACA,KAAK;AAAA,YACH,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAC;AAAA,YAC7B,GAAI,kBAAkB,cAAc,CAAC,EAAE,OAAO,eAAe,GAAG,IAAI,CAAC;AAAA,YACrE,GAAM,YAAY,iBAAoC,CAAC,IAAnB,CAAC,aAAa;AAAA,YAClD;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;",
5
+ "names": ["path"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamagui-loader",
3
- "version": "1.82.7",
3
+ "version": "1.82.9",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -18,15 +18,18 @@
18
18
  "clean:build": "tamagui-build clean:build"
19
19
  },
20
20
  "dependencies": {
21
- "@tamagui/cli-color": "1.82.7",
22
- "@tamagui/static": "1.82.7",
21
+ "@tamagui/cli-color": "1.82.9",
22
+ "@tamagui/core": "1.82.9",
23
+ "@tamagui/static": "1.82.9",
24
+ "@tamagui/web": "1.82.9",
23
25
  "esbuild-loader": "^3.0.1",
26
+ "esm-resolve": "^1.0.8",
24
27
  "fs-extra": "^11.1.0",
25
28
  "loader-utils": "^3.2.1",
26
29
  "lodash": "^4.17.21"
27
30
  },
28
31
  "devDependencies": {
29
- "@tamagui/build": "1.82.7",
32
+ "@tamagui/build": "1.82.9",
30
33
  "prettyjson": "^1.2.5",
31
34
  "webpack": "^5.88.2"
32
35
  },
@@ -1,10 +1,17 @@
1
+ import { existsSync } from 'fs'
2
+ import path, { dirname, join } from 'path'
3
+
1
4
  import {
2
5
  TamaguiOptions,
3
6
  loadTamagui,
4
7
  minifyCSS,
5
8
  watchTamaguiConfig,
6
9
  } from '@tamagui/static'
10
+ import buildResolver from 'esm-resolve'
7
11
  import type { Compiler, RuleSetRule } from 'webpack'
12
+ import webpack from 'webpack'
13
+
14
+ import { shouldExclude } from './shouldExclude'
8
15
 
9
16
  export type PluginOptions = TamaguiOptions & {
10
17
  isServer?: boolean
@@ -15,8 +22,14 @@ export type PluginOptions = TamaguiOptions & {
15
22
  disableEsbuildLoader?: boolean
16
23
  disableModuleJSXEntry?: boolean
17
24
  disableWatchConfig?: boolean
25
+ disableAliases?: boolean
18
26
  }
19
27
 
28
+ const dir = __dirname
29
+ const resolver = buildResolver(join(dir, 'index.js'), {
30
+ constraints: 'node',
31
+ })
32
+
20
33
  export class TamaguiPlugin {
21
34
  pluginName = 'TamaguiPlugin'
22
35
 
@@ -27,6 +40,93 @@ export class TamaguiPlugin {
27
40
  }
28
41
  ) {}
29
42
 
43
+ resolveEsm = (relativePath: string, onlyRequire = false) => {
44
+ if (this.options.isServer || onlyRequire) {
45
+ return require.resolve(relativePath)
46
+ }
47
+ const esm = resolver(relativePath)
48
+ return esm ? path.join(dir, esm) : require.resolve(relativePath)
49
+ }
50
+
51
+ safeResolves = (resolves: [string, string][], multiple = false) => {
52
+ const res: string[][] = []
53
+ for (const [out, mod] of resolves) {
54
+ if (out.endsWith('$')) {
55
+ res.push([out, mod])
56
+ continue
57
+ }
58
+ try {
59
+ res.push([out, this.resolveEsm(mod)])
60
+ if (multiple) {
61
+ res.push([out, this.resolveEsm(mod, true)])
62
+ }
63
+ } catch (err) {
64
+ if (out.includes(`@gorhom/bottom-sheet`)) {
65
+ continue
66
+ }
67
+ if (process.env.DEBUG?.startsWith('tamagui')) {
68
+ console.info(` withTamagui skipping resolving ${out}`, err)
69
+ }
70
+ }
71
+ }
72
+ return res
73
+ }
74
+
75
+ get componentsFullPaths() {
76
+ return this.safeResolves(
77
+ this.options.components.map(
78
+ (moduleName) => [moduleName, moduleName] as [string, string]
79
+ ),
80
+ true
81
+ )
82
+ }
83
+
84
+ get componentsBaseDirs() {
85
+ return this.componentsFullPaths.map(([_, fullPath]) => {
86
+ let rootPath = dirname(fullPath as string)
87
+ while (rootPath.length > 1) {
88
+ const pkg = join(rootPath, 'package.json')
89
+ const hasPkg = existsSync(pkg)
90
+ if (hasPkg) {
91
+ return rootPath
92
+ } else {
93
+ rootPath = join(rootPath, '..')
94
+ }
95
+ }
96
+ throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)
97
+ })
98
+ }
99
+
100
+ isInComponentModule = (fullPath: string) => {
101
+ return this.componentsBaseDirs.some((componentDir) =>
102
+ fullPath.startsWith(componentDir)
103
+ )
104
+ }
105
+
106
+ get defaultAliases() {
107
+ return Object.fromEntries(
108
+ this.safeResolves([
109
+ ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],
110
+ ['@tamagui/core', '@tamagui/core'],
111
+ ['@tamagui/web', '@tamagui/web'],
112
+ // web specific light react-native-svg, optional, can use svgs but had issues with compat
113
+ ['react-native-svg', '@tamagui/react-native-svg'],
114
+ // fixes https://github.com/kentcdodds/mdx-bundler/issues/143
115
+ ['react/jsx-runtime.js', 'react/jsx-runtime'],
116
+ ['react/jsx-runtime', 'react/jsx-runtime'],
117
+ ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],
118
+ ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],
119
+ ['react-native-reanimated', 'react-native-reanimated'],
120
+ ['react-native$', 'react-native-web'],
121
+ ['react-native-web$', 'react-native-web'],
122
+ ['@testing-library/react-native', '@tamagui/proxy-worm'],
123
+ ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],
124
+ // fix reanimated 3
125
+ ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],
126
+ ])
127
+ )
128
+ }
129
+
30
130
  apply(compiler: Compiler) {
31
131
  if (compiler.watchMode && !this.options.disableWatchConfig) {
32
132
  void watchTamaguiConfig(this.options).then((watcher) => {
@@ -37,10 +137,24 @@ export class TamaguiPlugin {
37
137
  })
38
138
  }
39
139
 
140
+ if (!this.options.exclude) {
141
+ // default to running if in component module, otherwise falling back the jsx dir heuristics
142
+ this.options.exclude = (path) => {
143
+ if (this.isInComponentModule(path)) {
144
+ return false
145
+ }
146
+ return shouldExclude(path)
147
+ }
148
+ }
149
+
40
150
  compiler.hooks.beforeRun.tapPromise(this.pluginName, async () => {
41
151
  await loadTamagui(this.options)
42
152
  })
43
153
 
154
+ console.info(
155
+ `\n\nNote: the [ignored-bare-import] warning for some Tamagui packages is ignorable, it's an artifact of esbuild that we will eventually find a decent fix for.\n\n`
156
+ )
157
+
44
158
  // mark as side effect
45
159
  compiler.hooks.normalModuleFactory.tap(this.pluginName, (nmf) => {
46
160
  nmf.hooks.createModule.tap(
@@ -54,6 +168,43 @@ export class TamaguiPlugin {
54
168
  )
55
169
  })
56
170
 
171
+ // default exclude definition
172
+ if (!this.options.disableAliases) {
173
+ const existingAlias = compiler.options.resolve.alias
174
+ if (Array.isArray(existingAlias)) {
175
+ //
176
+ } else if (typeof existingAlias === 'object') {
177
+ Object.assign(existingAlias, this.defaultAliases)
178
+ }
179
+ }
180
+
181
+ // explude react native web exports:
182
+ const excludeExports = this.options.excludeReactNativeWebExports
183
+ if (excludeExports) {
184
+ if (Array.isArray(excludeExports)) {
185
+ try {
186
+ const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join('|')}).*js`
187
+ const regex = new RegExp(regexStr)
188
+
189
+ compiler.hooks.environment.tap('MyPlugin', () => {
190
+ // Here you create a new instance of the plugin you want to add
191
+ const definePlugin = new webpack.NormalModuleReplacementPlugin(
192
+ regex,
193
+ this.resolveEsm('@tamagui/proxy-worm')
194
+ )
195
+ // Manually apply the plugin to the compiler
196
+ definePlugin.apply(compiler)
197
+ })
198
+ } catch (err) {
199
+ console.warn(
200
+ `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
201
+ ', '
202
+ )}`
203
+ )
204
+ }
205
+ }
206
+ }
207
+
57
208
  if (this.options.emitSingleCSSFile) {
58
209
  console.info(` ➡ [tamagui] 🎨 combining css into one file`)
59
210
 
@@ -9,11 +9,18 @@ export type PluginOptions = TamaguiOptions & {
9
9
  disableEsbuildLoader?: boolean;
10
10
  disableModuleJSXEntry?: boolean;
11
11
  disableWatchConfig?: boolean;
12
+ disableAliases?: boolean;
12
13
  };
13
14
  export declare class TamaguiPlugin {
14
15
  options: PluginOptions;
15
16
  pluginName: string;
16
17
  constructor(options?: PluginOptions);
18
+ resolveEsm: (relativePath: string, onlyRequire?: boolean) => string;
19
+ safeResolves: (resolves: [string, string][], multiple?: boolean) => string[][];
20
+ get componentsFullPaths(): string[][];
21
+ get componentsBaseDirs(): string[];
22
+ isInComponentModule: (fullPath: string) => boolean;
23
+ get defaultAliases(): any;
17
24
  apply(compiler: Compiler): void;
18
25
  }
19
26
  //# sourceMappingURL=TamaguiPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TamaguiPlugin.d.ts","sourceRoot":"","sources":["../src/TamaguiPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEpD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,qBAAa,aAAa;IAIf,OAAO,EAAE,aAAa;IAH/B,UAAU,SAAkB;gBAGnB,OAAO,GAAE,aAGf;IAGH,KAAK,CAAC,QAAQ,EAAE,QAAQ;CAuKzB"}
1
+ {"version":3,"file":"TamaguiPlugin.d.ts","sourceRoot":"","sources":["../src/TamaguiPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAKpD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAOD,qBAAa,aAAa;IAIf,OAAO,EAAE,aAAa;IAH/B,UAAU,SAAkB;gBAGnB,OAAO,GAAE,aAGf;IAGH,UAAU,iBAAkB,MAAM,mCAMjC;IAED,YAAY,aAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,oCAsB3C;IAED,IAAI,mBAAmB,eAOtB;IAED,IAAI,kBAAkB,aAcrB;IAED,mBAAmB,aAAc,MAAM,aAItC;IAED,IAAI,cAAc,QAsBjB;IAED,KAAK,CAAC,QAAQ,EAAE,QAAQ;CA0NzB"}