@tamagui/next-plugin 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.
- package/dist/cjs/withTamagui.js +14 -112
- package/dist/cjs/withTamagui.js.map +2 -2
- package/dist/cjs/withTamagui.native.js +14 -112
- package/dist/cjs/withTamagui.native.js.map +2 -2
- package/dist/esm/withTamagui.js +15 -116
- package/dist/esm/withTamagui.js.map +2 -2
- package/dist/esm/withTamagui.native.js +15 -116
- package/dist/esm/withTamagui.native.js.map +2 -2
- package/package.json +6 -7
- package/src/withTamagui.ts +11 -165
- package/types/withTamagui.d.ts.map +1 -1
package/dist/cjs/withTamagui.js
CHANGED
|
@@ -25,7 +25,7 @@ __export(withTamagui_exports, {
|
|
|
25
25
|
withTamagui: () => withTamagui
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(withTamagui_exports);
|
|
28
|
-
var
|
|
28
|
+
var import_path = __toESM(require("path")), import_browserslist = __toESM(require("browserslist")), import_css = require("next/dist/build/webpack/config/blocks/css"), import_loaders = require("next/dist/build/webpack/config/blocks/css/loaders"), import_tamagui_loader = require("tamagui-loader"), import_webpack = __toESM(require("webpack"));
|
|
29
29
|
const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
30
30
|
var _a;
|
|
31
31
|
const isAppDir = (tamaguiOptions == null ? void 0 : tamaguiOptions.appDir) || ((_a = nextConfig.experimental) == null ? void 0 : _a.appDir);
|
|
@@ -33,89 +33,18 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
33
33
|
...nextConfig,
|
|
34
34
|
webpack: (webpackConfig, options) => {
|
|
35
35
|
var _a2;
|
|
36
|
-
const { dir, config, dev, isServer } = options
|
|
37
|
-
constraints: "node"
|
|
38
|
-
});
|
|
36
|
+
const { dir, config, dev, isServer } = options;
|
|
39
37
|
if (typeof globalThis.__DEV__ > "u" && (globalThis.__DEV__ = dev), !(typeof ((_a2 = options.config) == null ? void 0 : _a2.swcMinify) == "boolean"))
|
|
40
38
|
throw new Error("Next.js 12 only supported");
|
|
41
|
-
const prefix = `${isServer ? " ssr " : " web "} |`,
|
|
42
|
-
|
|
43
|
-
const res = [];
|
|
44
|
-
for (const [out, mod] of resolves) {
|
|
45
|
-
if (out.endsWith("$")) {
|
|
46
|
-
res.push([out, mod]);
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
res.push([out, resolveEsm(mod)]), multiple && res.push([out, resolveEsm(mod, !0)]);
|
|
51
|
-
} catch (err) {
|
|
52
|
-
if (out.includes("@gorhom/bottom-sheet"))
|
|
53
|
-
continue;
|
|
54
|
-
(_a3 = process.env.DEBUG) != null && _a3.startsWith("tamagui") && console.info(prefix, `withTamagui skipping resolving ${out}`, err);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return res;
|
|
58
|
-
}, resolveEsm = (relativePath, onlyRequire = !1) => {
|
|
59
|
-
if (isServer || onlyRequire)
|
|
60
|
-
return require.resolve(relativePath);
|
|
61
|
-
const esm = resolver(relativePath);
|
|
62
|
-
return esm ? import_path.default.join(dir, esm) : require.resolve(relativePath);
|
|
63
|
-
}, SEP = import_path.default.sep, componentsBaseDirs = safeResolves(
|
|
64
|
-
tamaguiOptions.components.map(
|
|
65
|
-
(moduleName) => [moduleName, moduleName]
|
|
66
|
-
),
|
|
67
|
-
!0
|
|
68
|
-
).map(([_, fullPath]) => {
|
|
69
|
-
let rootPath = (0, import_path.dirname)(fullPath);
|
|
70
|
-
for (; rootPath.length > 1; ) {
|
|
71
|
-
const pkg = (0, import_path.join)(rootPath, "package.json");
|
|
72
|
-
if ((0, import_fs.existsSync)(pkg))
|
|
73
|
-
return rootPath;
|
|
74
|
-
rootPath = (0, import_path.join)(rootPath, "..");
|
|
75
|
-
}
|
|
76
|
-
throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
|
|
77
|
-
});
|
|
78
|
-
function isInComponentModule(fullPath) {
|
|
79
|
-
return componentsBaseDirs.some(
|
|
80
|
-
(componentDir) => fullPath.startsWith(componentDir)
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
|
-
const shouldExclude = (path2, projectRoot) => {
|
|
84
|
-
var _a3;
|
|
85
|
-
const res = (_a3 = tamaguiOptions.shouldExtract) == null ? void 0 : _a3.call(tamaguiOptions, path2, projectRoot);
|
|
86
|
-
return typeof res == "boolean" ? !res : isInComponentModule(path2) ? !1 : (0, import_tamagui_loader.shouldExclude)(path2, projectRoot);
|
|
87
|
-
}, rnw = tamaguiOptions.useReactNativeWebLite ? "react-native-web-lite" : "react-native-web", tamaguiAliases = Object.fromEntries(
|
|
88
|
-
safeResolves([
|
|
89
|
-
["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
|
|
90
|
-
["@tamagui/core", "@tamagui/core"],
|
|
91
|
-
["@tamagui/web", "@tamagui/web"],
|
|
92
|
-
// web specific light react-native-svg, optional, can use svgs but had issues with compat
|
|
93
|
-
["react-native-svg", "@tamagui/react-native-svg"],
|
|
94
|
-
// fixes https://github.com/kentcdodds/mdx-bundler/issues/143
|
|
95
|
-
["react/jsx-runtime.js", "react/jsx-runtime"],
|
|
96
|
-
["react/jsx-runtime", "react/jsx-runtime"],
|
|
97
|
-
["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
|
|
98
|
-
["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
|
|
99
|
-
["react-native-reanimated", "react-native-reanimated"],
|
|
100
|
-
["react-native$", rnw],
|
|
101
|
-
["react-native-web$", rnw],
|
|
102
|
-
["@testing-library/react-native", "@tamagui/proxy-worm"],
|
|
103
|
-
["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
|
|
104
|
-
// fix reanimated 3
|
|
105
|
-
["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"],
|
|
106
|
-
...tamaguiOptions.aliasReactPackages ? [
|
|
107
|
-
["react", "react"],
|
|
108
|
-
["react-dom", "react-dom"]
|
|
109
|
-
] : []
|
|
110
|
-
])
|
|
111
|
-
), alias = {
|
|
112
|
-
...webpackConfig.resolve.alias || {},
|
|
113
|
-
...tamaguiAliases
|
|
114
|
-
};
|
|
115
|
-
process.env.DEBUG && console.info("Tamagui alias:", alias), process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
39
|
+
const prefix = `${isServer ? " ssr " : " web "} |`, SEP = import_path.default.sep;
|
|
40
|
+
process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
116
41
|
concatenateModules: !1
|
|
117
|
-
})
|
|
118
|
-
const
|
|
42
|
+
});
|
|
43
|
+
const enableStudio = options.dev && options.nextRuntime === "nodejs" && isServer, tamaguiPlugin = new import_tamagui_loader.TamaguiPlugin({
|
|
44
|
+
enableStudio,
|
|
45
|
+
isServer,
|
|
46
|
+
...tamaguiOptions
|
|
47
|
+
}), defines = {
|
|
119
48
|
"process.env.IS_STATIC": JSON.stringify(""),
|
|
120
49
|
"process.env.TAMAGUI_TARGET": '"web"',
|
|
121
50
|
"process.env.TAMAGUI_IS_SERVER": JSON.stringify(isServer ? "true" : ""),
|
|
@@ -125,32 +54,13 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
125
54
|
process.env.TAMAGUI_DOES_SSR_CSS ?? ((tamaguiOptions == null ? void 0 : tamaguiOptions.doesMutateThemes) === !1 ? !0 : "mutates-themes")
|
|
126
55
|
)
|
|
127
56
|
},
|
|
57
|
+
// TODO move to TamaguiPlugin
|
|
128
58
|
// optimizes inserts automatically assuming CSS wont be "removed" on page change
|
|
129
59
|
...tamaguiOptions.emitSingleCSSFile && {
|
|
130
60
|
"process.env.TAMAGUI_INSERT_SELECTOR_TRIES": JSON.stringify("1")
|
|
131
61
|
}
|
|
132
62
|
};
|
|
133
|
-
webpackConfig.plugins.push(new import_webpack.default.DefinePlugin(defines))
|
|
134
|
-
const excludeExports = tamaguiOptions.excludeReactNativeWebExports;
|
|
135
|
-
if (Array.isArray(excludeExports))
|
|
136
|
-
try {
|
|
137
|
-
const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(
|
|
138
|
-
"|"
|
|
139
|
-
)}).*js`, regex = new RegExp(regexStr);
|
|
140
|
-
webpackConfig.plugins.push(
|
|
141
|
-
new import_webpack.default.NormalModuleReplacementPlugin(
|
|
142
|
-
regex,
|
|
143
|
-
resolveEsm("@tamagui/proxy-worm")
|
|
144
|
-
)
|
|
145
|
-
);
|
|
146
|
-
} catch {
|
|
147
|
-
console.warn(
|
|
148
|
-
`Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
|
|
149
|
-
", "
|
|
150
|
-
)}`
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
if (process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
63
|
+
if (webpackConfig.plugins.push(new import_webpack.default.DefinePlugin(defines)), process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
154
64
|
transform: "@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}",
|
|
155
65
|
skipDefaultConversion: !0
|
|
156
66
|
}), isServer) {
|
|
@@ -165,7 +75,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
165
75
|
if (userRes !== void 0)
|
|
166
76
|
return userRes;
|
|
167
77
|
}
|
|
168
|
-
if (isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
78
|
+
if (tamaguiPlugin.isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
169
79
|
return !1;
|
|
170
80
|
if (
|
|
171
81
|
// feather icons uses react-native-svg which needs to be aliased
|
|
@@ -227,15 +137,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
227
137
|
use: cssLoader
|
|
228
138
|
});
|
|
229
139
|
}
|
|
230
|
-
|
|
231
|
-
return webpackConfig.plugins.push(
|
|
232
|
-
new import_tamagui_loader.TamaguiPlugin({
|
|
233
|
-
enableStudio,
|
|
234
|
-
isServer,
|
|
235
|
-
exclude: (path2) => shouldExclude(path2, options.dir),
|
|
236
|
-
...tamaguiOptions
|
|
237
|
-
})
|
|
238
|
-
), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
140
|
+
return webpackConfig.plugins.push(tamaguiPlugin), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
239
141
|
}
|
|
240
142
|
};
|
|
241
143
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/withTamagui.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
5
|
-
"names": ["_a", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["_a", "path", "webpack", "browserslist"]
|
|
6
6
|
}
|
|
@@ -26,7 +26,7 @@ __export(withTamagui_exports, {
|
|
|
26
26
|
withTamagui: () => withTamagui
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(withTamagui_exports);
|
|
29
|
-
var
|
|
29
|
+
var import_path = __toESM(require("path")), import_browserslist = __toESM(require("browserslist")), import_css = require("next/dist/build/webpack/config/blocks/css"), import_loaders = require("next/dist/build/webpack/config/blocks/css/loaders"), import_tamagui_loader = require("tamagui-loader"), import_webpack = __toESM(require("webpack"));
|
|
30
30
|
const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
31
31
|
var _a;
|
|
32
32
|
const isAppDir = (tamaguiOptions == null ? void 0 : tamaguiOptions.appDir) || ((_a = nextConfig.experimental) == null ? void 0 : _a.appDir);
|
|
@@ -34,89 +34,18 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
34
34
|
...nextConfig,
|
|
35
35
|
webpack: (webpackConfig, options) => {
|
|
36
36
|
var _a2;
|
|
37
|
-
const { dir, config, dev, isServer } = options
|
|
38
|
-
constraints: "node"
|
|
39
|
-
});
|
|
37
|
+
const { dir, config, dev, isServer } = options;
|
|
40
38
|
if (typeof globalThis.__DEV__ > "u" && (globalThis.__DEV__ = dev), !(typeof ((_a2 = options.config) == null ? void 0 : _a2.swcMinify) == "boolean"))
|
|
41
39
|
throw new Error("Next.js 12 only supported");
|
|
42
|
-
const prefix = `${isServer ? " ssr " : " web "} |`,
|
|
43
|
-
|
|
44
|
-
const res = [];
|
|
45
|
-
for (const [out, mod] of resolves) {
|
|
46
|
-
if (out.endsWith("$")) {
|
|
47
|
-
res.push([out, mod]);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
try {
|
|
51
|
-
res.push([out, resolveEsm(mod)]), multiple && res.push([out, resolveEsm(mod, !0)]);
|
|
52
|
-
} catch (err) {
|
|
53
|
-
if (out.includes("@gorhom/bottom-sheet"))
|
|
54
|
-
continue;
|
|
55
|
-
(_a3 = process.env.DEBUG) != null && _a3.startsWith("tamagui") && console.info(prefix, `withTamagui skipping resolving ${out}`, err);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return res;
|
|
59
|
-
}, resolveEsm = (relativePath, onlyRequire = !1) => {
|
|
60
|
-
if (isServer || onlyRequire)
|
|
61
|
-
return require.resolve(relativePath);
|
|
62
|
-
const esm = resolver(relativePath);
|
|
63
|
-
return esm ? import_path.default.join(dir, esm) : require.resolve(relativePath);
|
|
64
|
-
}, SEP = import_path.default.sep, componentsBaseDirs = safeResolves(
|
|
65
|
-
tamaguiOptions.components.map(
|
|
66
|
-
(moduleName) => [moduleName, moduleName]
|
|
67
|
-
),
|
|
68
|
-
!0
|
|
69
|
-
).map(([_, fullPath]) => {
|
|
70
|
-
let rootPath = (0, import_path.dirname)(fullPath);
|
|
71
|
-
for (; rootPath.length > 1; ) {
|
|
72
|
-
const pkg = (0, import_path.join)(rootPath, "package.json");
|
|
73
|
-
if ((0, import_fs.existsSync)(pkg))
|
|
74
|
-
return rootPath;
|
|
75
|
-
rootPath = (0, import_path.join)(rootPath, "..");
|
|
76
|
-
}
|
|
77
|
-
throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
|
|
78
|
-
});
|
|
79
|
-
function isInComponentModule(fullPath) {
|
|
80
|
-
return componentsBaseDirs.some(
|
|
81
|
-
(componentDir) => fullPath.startsWith(componentDir)
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
const shouldExclude = (path2, projectRoot) => {
|
|
85
|
-
var _a3;
|
|
86
|
-
const res = (_a3 = tamaguiOptions.shouldExtract) == null ? void 0 : _a3.call(tamaguiOptions, path2, projectRoot);
|
|
87
|
-
return typeof res == "boolean" ? !res : isInComponentModule(path2) ? !1 : (0, import_tamagui_loader.shouldExclude)(path2, projectRoot);
|
|
88
|
-
}, rnw = tamaguiOptions.useReactNativeWebLite ? "react-native-web-lite" : "react-native-web", tamaguiAliases = Object.fromEntries(
|
|
89
|
-
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$", rnw],
|
|
102
|
-
["react-native-web$", rnw],
|
|
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
|
-
...tamaguiOptions.aliasReactPackages ? [
|
|
108
|
-
["react", "react"],
|
|
109
|
-
["react-dom", "react-dom"]
|
|
110
|
-
] : []
|
|
111
|
-
])
|
|
112
|
-
), alias = {
|
|
113
|
-
...webpackConfig.resolve.alias || {},
|
|
114
|
-
...tamaguiAliases
|
|
115
|
-
};
|
|
116
|
-
process.env.DEBUG && console.info("Tamagui alias:", alias), process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
40
|
+
const prefix = `${isServer ? " ssr " : " web "} |`, SEP = import_path.default.sep;
|
|
41
|
+
process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
117
42
|
concatenateModules: !1
|
|
118
|
-
})
|
|
119
|
-
const
|
|
43
|
+
});
|
|
44
|
+
const enableStudio = options.dev && options.nextRuntime === "nodejs" && isServer, tamaguiPlugin = new import_tamagui_loader.TamaguiPlugin({
|
|
45
|
+
enableStudio,
|
|
46
|
+
isServer,
|
|
47
|
+
...tamaguiOptions
|
|
48
|
+
}), defines = {
|
|
120
49
|
"process.env.IS_STATIC": JSON.stringify(""),
|
|
121
50
|
"process.env.TAMAGUI_TARGET": '"web"',
|
|
122
51
|
"process.env.TAMAGUI_IS_SERVER": JSON.stringify(isServer ? "true" : ""),
|
|
@@ -126,32 +55,13 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
126
55
|
process.env.TAMAGUI_DOES_SSR_CSS ?? ((tamaguiOptions == null ? void 0 : tamaguiOptions.doesMutateThemes) === !1 ? !0 : "mutates-themes")
|
|
127
56
|
)
|
|
128
57
|
},
|
|
58
|
+
// TODO move to TamaguiPlugin
|
|
129
59
|
// optimizes inserts automatically assuming CSS wont be "removed" on page change
|
|
130
60
|
...tamaguiOptions.emitSingleCSSFile && {
|
|
131
61
|
"process.env.TAMAGUI_INSERT_SELECTOR_TRIES": JSON.stringify("1")
|
|
132
62
|
}
|
|
133
63
|
};
|
|
134
|
-
webpackConfig.plugins.push(new import_webpack.default.DefinePlugin(defines))
|
|
135
|
-
const excludeExports = tamaguiOptions.excludeReactNativeWebExports;
|
|
136
|
-
if (Array.isArray(excludeExports))
|
|
137
|
-
try {
|
|
138
|
-
const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(
|
|
139
|
-
"|"
|
|
140
|
-
)}).*js`, regex = new RegExp(regexStr);
|
|
141
|
-
webpackConfig.plugins.push(
|
|
142
|
-
new import_webpack.default.NormalModuleReplacementPlugin(
|
|
143
|
-
regex,
|
|
144
|
-
resolveEsm("@tamagui/proxy-worm")
|
|
145
|
-
)
|
|
146
|
-
);
|
|
147
|
-
} catch {
|
|
148
|
-
console.warn(
|
|
149
|
-
`Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
|
|
150
|
-
", "
|
|
151
|
-
)}`
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
if (process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
64
|
+
if (webpackConfig.plugins.push(new import_webpack.default.DefinePlugin(defines)), process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
155
65
|
transform: "@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}",
|
|
156
66
|
skipDefaultConversion: !0
|
|
157
67
|
}), isServer) {
|
|
@@ -166,7 +76,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
166
76
|
if (userRes !== void 0)
|
|
167
77
|
return userRes;
|
|
168
78
|
}
|
|
169
|
-
if (isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
79
|
+
if (tamaguiPlugin.isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
170
80
|
return !1;
|
|
171
81
|
if (
|
|
172
82
|
// feather icons uses react-native-svg which needs to be aliased
|
|
@@ -228,15 +138,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
228
138
|
use: cssLoader
|
|
229
139
|
});
|
|
230
140
|
}
|
|
231
|
-
|
|
232
|
-
return webpackConfig.plugins.push(
|
|
233
|
-
new import_tamagui_loader.TamaguiPlugin({
|
|
234
|
-
enableStudio,
|
|
235
|
-
isServer,
|
|
236
|
-
exclude: (path2) => shouldExclude(path2, options.dir),
|
|
237
|
-
...tamaguiOptions
|
|
238
|
-
})
|
|
239
|
-
), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
141
|
+
return webpackConfig.plugins.push(tamaguiPlugin), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
240
142
|
}
|
|
241
143
|
};
|
|
242
144
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/withTamagui.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
5
|
-
"names": ["_a", "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB,0BAEjB,sBAAyB,kCACzB,aAA4B,sDAC5B,iBAAmC,8DACnC,wBAAoE,2BACpE,iBAAoB;AAqBb,MAAM,cAAc,CAAC,mBACnB,CAAC,aAAkB,CAAC,MAAM;AA5BnC;AA6BI,QAAM,YAAW,iDAAgB,aAAU,gBAAW,iBAAX,mBAAyB;AAEpE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,CAAC,eAAoB,YAAiB;AAjCrD,UAAAA;AAkCQ,YAAM,EAAE,KAAK,QAAQ,KAAK,SAAS,IAAI;AASvC,UANI,OAAO,WAAW,UAAe,QAEnC,WAAW,UAAa,MAItB,EADa,SAAOA,MAAA,QAAQ,WAAR,gBAAAA,IAAgB,cAAc;AAEpD,cAAM,IAAI,MAAM,2BAA2B;AAG7C,YAAM,SAAS,GAAG,WAAW,UAAU,OAAO,MACxC,MAAM,YAAAC,QAAK;AAEjB,MAAI,QAAQ,IAAI,YAAY,UAC1B,OAAO,OAAO,cAAc,cAAc;AAAA,QACxC,oBAAoB;AAAA,MACtB,CAAC;AAGH,YAAM,eAAe,QAAQ,OAAO,QAAQ,gBAAgB,YAAY,UAClE,gBAAgB,IAAI,oCAAc;AAAA,QACtC;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,CAAC,GAEK,UAAU;AAAA,QACd,yBAAyB,KAAK,UAAU,EAAE;AAAA,QAC1C,8BAA8B;AAAA,QAC9B,iCAAiC,KAAK,UAAU,WAAW,SAAS,EAAE;AAAA,QACtE,SAAS,KAAK,UAAU,GAAG;AAAA,QAC3B,IAAK,eAAe,aAAa,QAAQ,IAAI,yBAAyB;AAAA,UACpE,oCAAoC,KAAK;AAAA,YACvC,QAAQ,IAAI,0BACT,iDAAgB,sBAAqB,KAAQ,KAAO;AAAA,UACzD;AAAA,QACF;AAAA;AAAA;AAAA,QAIA,GAAI,eAAe,qBAAqB;AAAA,UACtC,6CAA6C,KAAK,UAAU,GAAG;AAAA,QACjE;AAAA,MACF;AA0BA,UAxBA,cAAc,QAAQ,KAAK,IAAI,eAAAC,QAAQ,aAAa,OAAO,CAAC,GAExD,QAAQ,IAAI,2BACV,QAAQ,IAAI,SACd,QAAQ,KAAK,QAAQ,yBAAyB,GAE5C,cAAc,QAAQ,QAAQ,CAAC,MACjC,OAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,YAAY,GAC1D,OAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,WAK7C,aACH,WAAW,sBAAsB,CAAC,GAClC,WAAW,kBAAkB,uBAAuB,IAAI;AAAA,QACtD,WAAW;AAAA,QACX,uBAAuB;AAAA,MACzB,IAME,UAAU;AACZ,cAAM,cAAc,CAAC,SAAiB,YAAoB;AACxD,gBAAM,WAAW,QAAQ,CAAC,MAAM,MAAM,YAAAD,QAAK,KAAK,SAAS,OAAO,IAAI;AAEpE,cAAI,eAAe,yBAAyB;AAC1C,kBAAM,UAAU,eAAe,wBAAwB;AAAA,cACrD;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AACD,gBAAI,YAAY;AACd,qBAAO;AAAA,UAEX;AAYA,cAVI,cAAc,oBAAoB,QAAQ,KAI1C,SAAS,SAAS,kBAAkB,KAOtC,aAAa,kBACb,SAAS,WAAW,eAAe,GAAG,EAAE;AAExC,mBAAO;AAGT;AAAA;AAAA;AAAA,YAGE,SAAS,WAAW,kBAAkB,KACtC,SAAS,SAAS,eAAe,GAAG,kBAAkB,KACtD,IAAI,OAAO,qBAAqB,GAAG,GAAG,EAAE,KAAK,QAAQ;AAAA;AAErD,mBAAO,YAAY,QAAQ;AAE7B,cACE,WAAS,WAAW,MAAM,KAC1B,SAAS,WAAW,QAAQ,KAC5B,aAAa,aACb,SAAS,WAAW,UAAU,KAC9B,aAAa,oCACb,aAAa,0BACb,SAAS,WAAW,mBAAmB,KACvC,SAAS,WAAW,SAAS;AAI/B,mBAAI,oBAAmB,KAAK,OAAO;AAAA,QAIrC;AAGA,sBAAc,YAAY;AAAA,UACxB,GAAG,cAAc,UAAU,IAAI,CAAC,aAC1B,OAAO,YAAa,aACf,WAGF,CAAC,KAAK,OAAO;AAClB,kBAAM,OAAO,OAAO,MAAO,YACrB,MAAM,YAAY,IAAI,SAAS,IAAI,OAAO;AAChD,mBAAI,OACE,OAAO,OAAQ,WACV,GAAG,MAAM,GAAG,IAEjB,MACK,SAAS,KAAK,EAAE,IAElB,GAAG,IAEJ,MAEJ,OAAO,OAAQ,WACf,QAAQ,QAAQ,GAAG,IACnB,SAAS,GAAG,IAHZ,QAAQ,QAAQ,MAAS;AAAA,UAI/B,CACD;AAAA,QACH;AAAA,MACF;AAKA,YAAM,WAAW,cAAc,OAAO,MAAM;AAAA,QAC1C,CAAC,SACC,MAAM,QAAQ,KAAK,KAAK,KACxB,KAAK,MAAM;AAAA,UACT,CAAC,EAAE,KAAK,MACN,OAAO,QAAS,YAChB,OAAO,KAAK,QAAS,cACrB,KAAK,KAAK,cAAc;AAAA,QAC5B;AAAA,MACJ,EAAE;AAKF,UAAI,UAAU;AACZ,QAAI,eAAe,2BAEjB,SAAS,QAAQ;AAAA,UACf,MAAM;AAAA,UACN,KAAK;AAAA,YACH;AAAA,cACE,QAAQ,gBAAgB,YAAY;AAAA,cACpC,SAAS;AAAA,gBACP,OAAO,WAAW,mBAAmB;AAAA,gBACrC,UAAU,gBAAgB,aAAa;AAAA,gBACvC,YAAY,GACV,WAAW,eAAe,EAC5B;AAAA,gBACA,YAAY,GAAG,WAAW,QAAQ,EAAE;AAAA,gBACpC,MAAM;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAC;AAMH,cAAM,gBAAY;AAAA;AAAA,UAEhB;AAAA,YACE,aACE,WAAW,eACX,QAAQ,OAAO,eACf,OAAO;AAAA,YACT,QAAQ,WAAW;AAAA,YACnB,cAAc,WAAW,gBAAgB,CAAC;AAAA,YAC1C,eAAe;AAAA,YACf,cAAc,CAAC;AAAA,YACf,WAAW;AAAA,YACX,UAAU,CAAC;AAAA,YACX;AAAA,YACA,eAAe;AAAA,UACjB;AAAA;AAAA,UAEA,UAAM,wBAAY,KAAK,qBAAqB,KAAK,GAAG,CAAC;AAAA,UACrD,CAAC;AAAA,QACH;AACA,QAAK,YACH,SAAS,QAAQ;AAAA,UACf,MAAM,eAAe,kBAAkB;AAAA,UACvC,aAAa;AAAA,UACb,KAAK;AAAA,QACP,CAAC;AAAA,MAEL;AAIA,aAFA,cAAc,QAAQ,KAAK,aAAa,GAEpC,OAAO,WAAW,WAAY,aACzB,WAAW,QAAQ,eAAe,OAAO,IAG3C;AAAA,IACT;AAAA,EACF;AACF;AAGF,SAAS,qBAAqB,KAAK,eAAe;AAChD,MAAI;AACJ,MAAI;AACF,eAAW,oBAAAE,QAAa,WAAW;AAAA,MACjC,MAAM;AAAA,MACN,KAAK,gBAAgB,gBAAgB;AAAA,IACvC,CAAC;AAAA,EACH,QAAQ;AAAA,EAER;AACA,SAAO;AACT;",
|
|
5
|
+
"names": ["_a", "path", "webpack", "browserslist"]
|
|
6
6
|
}
|
package/dist/esm/withTamagui.js
CHANGED
|
@@ -1,100 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
import path, { dirname, join } from "path";
|
|
1
|
+
import path from "path";
|
|
3
2
|
import browserslist from "browserslist";
|
|
4
|
-
import buildResolver from "esm-resolve";
|
|
5
3
|
import { lazyPostCSS } from "next/dist/build/webpack/config/blocks/css";
|
|
6
4
|
import { getGlobalCssLoader } from "next/dist/build/webpack/config/blocks/css/loaders";
|
|
7
|
-
import {
|
|
8
|
-
TamaguiPlugin,
|
|
9
|
-
shouldExclude as shouldExcludeDefault
|
|
10
|
-
} from "tamagui-loader";
|
|
5
|
+
import { TamaguiPlugin } from "tamagui-loader";
|
|
11
6
|
import webpack from "webpack";
|
|
12
7
|
const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
13
8
|
const isAppDir = tamaguiOptions?.appDir || nextConfig.experimental?.appDir;
|
|
14
9
|
return {
|
|
15
10
|
...nextConfig,
|
|
16
11
|
webpack: (webpackConfig, options) => {
|
|
17
|
-
const { dir, config, dev, isServer } = options
|
|
18
|
-
constraints: "node"
|
|
19
|
-
});
|
|
12
|
+
const { dir, config, dev, isServer } = options;
|
|
20
13
|
if (typeof globalThis.__DEV__ > "u" && (globalThis.__DEV__ = dev), !(typeof options.config?.swcMinify == "boolean"))
|
|
21
14
|
throw new Error("Next.js 12 only supported");
|
|
22
|
-
const prefix = `${isServer ? " ssr " : " web "} |`,
|
|
23
|
-
|
|
24
|
-
for (const [out, mod] of resolves) {
|
|
25
|
-
if (out.endsWith("$")) {
|
|
26
|
-
res.push([out, mod]);
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
res.push([out, resolveEsm(mod)]), multiple && res.push([out, resolveEsm(mod, !0)]);
|
|
31
|
-
} catch (err) {
|
|
32
|
-
if (out.includes("@gorhom/bottom-sheet"))
|
|
33
|
-
continue;
|
|
34
|
-
process.env.DEBUG?.startsWith("tamagui") && console.info(prefix, `withTamagui skipping resolving ${out}`, err);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return res;
|
|
38
|
-
}, resolveEsm = (relativePath, onlyRequire = !1) => {
|
|
39
|
-
if (isServer || onlyRequire)
|
|
40
|
-
return require.resolve(relativePath);
|
|
41
|
-
const esm = resolver(relativePath);
|
|
42
|
-
return esm ? path.join(dir, esm) : require.resolve(relativePath);
|
|
43
|
-
}, SEP = path.sep, componentsBaseDirs = safeResolves(
|
|
44
|
-
tamaguiOptions.components.map(
|
|
45
|
-
(moduleName) => [moduleName, moduleName]
|
|
46
|
-
),
|
|
47
|
-
!0
|
|
48
|
-
).map(([_, fullPath]) => {
|
|
49
|
-
let rootPath = dirname(fullPath);
|
|
50
|
-
for (; rootPath.length > 1; ) {
|
|
51
|
-
const pkg = join(rootPath, "package.json");
|
|
52
|
-
if (existsSync(pkg))
|
|
53
|
-
return rootPath;
|
|
54
|
-
rootPath = join(rootPath, "..");
|
|
55
|
-
}
|
|
56
|
-
throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
|
|
57
|
-
});
|
|
58
|
-
function isInComponentModule(fullPath) {
|
|
59
|
-
return componentsBaseDirs.some(
|
|
60
|
-
(componentDir) => fullPath.startsWith(componentDir)
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
const shouldExclude = (path2, projectRoot) => {
|
|
64
|
-
const res = tamaguiOptions.shouldExtract?.(path2, projectRoot);
|
|
65
|
-
return typeof res == "boolean" ? !res : isInComponentModule(path2) ? !1 : shouldExcludeDefault(path2, projectRoot);
|
|
66
|
-
}, rnw = tamaguiOptions.useReactNativeWebLite ? "react-native-web-lite" : "react-native-web", tamaguiAliases = Object.fromEntries(
|
|
67
|
-
safeResolves([
|
|
68
|
-
["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
|
|
69
|
-
["@tamagui/core", "@tamagui/core"],
|
|
70
|
-
["@tamagui/web", "@tamagui/web"],
|
|
71
|
-
// web specific light react-native-svg, optional, can use svgs but had issues with compat
|
|
72
|
-
["react-native-svg", "@tamagui/react-native-svg"],
|
|
73
|
-
// fixes https://github.com/kentcdodds/mdx-bundler/issues/143
|
|
74
|
-
["react/jsx-runtime.js", "react/jsx-runtime"],
|
|
75
|
-
["react/jsx-runtime", "react/jsx-runtime"],
|
|
76
|
-
["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
|
|
77
|
-
["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
|
|
78
|
-
["react-native-reanimated", "react-native-reanimated"],
|
|
79
|
-
["react-native$", rnw],
|
|
80
|
-
["react-native-web$", rnw],
|
|
81
|
-
["@testing-library/react-native", "@tamagui/proxy-worm"],
|
|
82
|
-
["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
|
|
83
|
-
// fix reanimated 3
|
|
84
|
-
["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"],
|
|
85
|
-
...tamaguiOptions.aliasReactPackages ? [
|
|
86
|
-
["react", "react"],
|
|
87
|
-
["react-dom", "react-dom"]
|
|
88
|
-
] : []
|
|
89
|
-
])
|
|
90
|
-
), alias = {
|
|
91
|
-
...webpackConfig.resolve.alias || {},
|
|
92
|
-
...tamaguiAliases
|
|
93
|
-
};
|
|
94
|
-
process.env.DEBUG && console.info("Tamagui alias:", alias), process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
15
|
+
const prefix = `${isServer ? " ssr " : " web "} |`, SEP = path.sep;
|
|
16
|
+
process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
95
17
|
concatenateModules: !1
|
|
96
|
-
})
|
|
97
|
-
const
|
|
18
|
+
});
|
|
19
|
+
const enableStudio = options.dev && options.nextRuntime === "nodejs" && isServer, tamaguiPlugin = new TamaguiPlugin({
|
|
20
|
+
enableStudio,
|
|
21
|
+
isServer,
|
|
22
|
+
...tamaguiOptions
|
|
23
|
+
}), defines = {
|
|
98
24
|
"process.env.IS_STATIC": JSON.stringify(""),
|
|
99
25
|
"process.env.TAMAGUI_TARGET": '"web"',
|
|
100
26
|
"process.env.TAMAGUI_IS_SERVER": JSON.stringify(isServer ? "true" : ""),
|
|
@@ -104,32 +30,13 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
104
30
|
process.env.TAMAGUI_DOES_SSR_CSS ?? (tamaguiOptions?.doesMutateThemes === !1 ? !0 : "mutates-themes")
|
|
105
31
|
)
|
|
106
32
|
},
|
|
33
|
+
// TODO move to TamaguiPlugin
|
|
107
34
|
// optimizes inserts automatically assuming CSS wont be "removed" on page change
|
|
108
35
|
...tamaguiOptions.emitSingleCSSFile && {
|
|
109
36
|
"process.env.TAMAGUI_INSERT_SELECTOR_TRIES": JSON.stringify("1")
|
|
110
37
|
}
|
|
111
38
|
};
|
|
112
|
-
webpackConfig.plugins.push(new webpack.DefinePlugin(defines))
|
|
113
|
-
const excludeExports = tamaguiOptions.excludeReactNativeWebExports;
|
|
114
|
-
if (Array.isArray(excludeExports))
|
|
115
|
-
try {
|
|
116
|
-
const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(
|
|
117
|
-
"|"
|
|
118
|
-
)}).*js`, regex = new RegExp(regexStr);
|
|
119
|
-
webpackConfig.plugins.push(
|
|
120
|
-
new webpack.NormalModuleReplacementPlugin(
|
|
121
|
-
regex,
|
|
122
|
-
resolveEsm("@tamagui/proxy-worm")
|
|
123
|
-
)
|
|
124
|
-
);
|
|
125
|
-
} catch {
|
|
126
|
-
console.warn(
|
|
127
|
-
`Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
|
|
128
|
-
", "
|
|
129
|
-
)}`
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
if (process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
39
|
+
if (webpackConfig.plugins.push(new webpack.DefinePlugin(defines)), process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
133
40
|
transform: "@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}",
|
|
134
41
|
skipDefaultConversion: !0
|
|
135
42
|
}), isServer) {
|
|
@@ -144,7 +51,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
144
51
|
if (userRes !== void 0)
|
|
145
52
|
return userRes;
|
|
146
53
|
}
|
|
147
|
-
if (isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
54
|
+
if (tamaguiPlugin.isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
148
55
|
return !1;
|
|
149
56
|
if (
|
|
150
57
|
// feather icons uses react-native-svg which needs to be aliased
|
|
@@ -206,15 +113,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
206
113
|
use: cssLoader
|
|
207
114
|
});
|
|
208
115
|
}
|
|
209
|
-
|
|
210
|
-
return webpackConfig.plugins.push(
|
|
211
|
-
new TamaguiPlugin({
|
|
212
|
-
enableStudio,
|
|
213
|
-
isServer,
|
|
214
|
-
exclude: (path2) => shouldExclude(path2, options.dir),
|
|
215
|
-
...tamaguiOptions
|
|
216
|
-
})
|
|
217
|
-
), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
116
|
+
return webpackConfig.plugins.push(tamaguiPlugin), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
218
117
|
}
|
|
219
118
|
};
|
|
220
119
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/withTamagui.ts"],
|
|
4
|
-
"mappings": "AAAA,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,100 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
import path, { dirname, join } from "path";
|
|
1
|
+
import path from "path";
|
|
3
2
|
import browserslist from "browserslist";
|
|
4
|
-
import buildResolver from "esm-resolve";
|
|
5
3
|
import { lazyPostCSS } from "next/dist/build/webpack/config/blocks/css";
|
|
6
4
|
import { getGlobalCssLoader } from "next/dist/build/webpack/config/blocks/css/loaders";
|
|
7
|
-
import {
|
|
8
|
-
TamaguiPlugin,
|
|
9
|
-
shouldExclude as shouldExcludeDefault
|
|
10
|
-
} from "tamagui-loader";
|
|
5
|
+
import { TamaguiPlugin } from "tamagui-loader";
|
|
11
6
|
import webpack from "webpack";
|
|
12
7
|
const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
13
8
|
const isAppDir = tamaguiOptions?.appDir || nextConfig.experimental?.appDir;
|
|
14
9
|
return {
|
|
15
10
|
...nextConfig,
|
|
16
11
|
webpack: (webpackConfig, options) => {
|
|
17
|
-
const { dir, config, dev, isServer } = options
|
|
18
|
-
constraints: "node"
|
|
19
|
-
});
|
|
12
|
+
const { dir, config, dev, isServer } = options;
|
|
20
13
|
if (typeof globalThis.__DEV__ > "u" && (globalThis.__DEV__ = dev), !(typeof options.config?.swcMinify == "boolean"))
|
|
21
14
|
throw new Error("Next.js 12 only supported");
|
|
22
|
-
const prefix = `${isServer ? " ssr " : " web "} |`,
|
|
23
|
-
|
|
24
|
-
for (const [out, mod] of resolves) {
|
|
25
|
-
if (out.endsWith("$")) {
|
|
26
|
-
res.push([out, mod]);
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
res.push([out, resolveEsm(mod)]), multiple && res.push([out, resolveEsm(mod, !0)]);
|
|
31
|
-
} catch (err) {
|
|
32
|
-
if (out.includes("@gorhom/bottom-sheet"))
|
|
33
|
-
continue;
|
|
34
|
-
process.env.DEBUG?.startsWith("tamagui") && console.info(prefix, `withTamagui skipping resolving ${out}`, err);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return res;
|
|
38
|
-
}, resolveEsm = (relativePath, onlyRequire = !1) => {
|
|
39
|
-
if (isServer || onlyRequire)
|
|
40
|
-
return require.resolve(relativePath);
|
|
41
|
-
const esm = resolver(relativePath);
|
|
42
|
-
return esm ? path.join(dir, esm) : require.resolve(relativePath);
|
|
43
|
-
}, SEP = path.sep, componentsBaseDirs = safeResolves(
|
|
44
|
-
tamaguiOptions.components.map(
|
|
45
|
-
(moduleName) => [moduleName, moduleName]
|
|
46
|
-
),
|
|
47
|
-
!0
|
|
48
|
-
).map(([_, fullPath]) => {
|
|
49
|
-
let rootPath = dirname(fullPath);
|
|
50
|
-
for (; rootPath.length > 1; ) {
|
|
51
|
-
const pkg = join(rootPath, "package.json");
|
|
52
|
-
if (existsSync(pkg))
|
|
53
|
-
return rootPath;
|
|
54
|
-
rootPath = join(rootPath, "..");
|
|
55
|
-
}
|
|
56
|
-
throw new Error(`Couldn't find package.json in any path above: ${fullPath}`);
|
|
57
|
-
});
|
|
58
|
-
function isInComponentModule(fullPath) {
|
|
59
|
-
return componentsBaseDirs.some(
|
|
60
|
-
(componentDir) => fullPath.startsWith(componentDir)
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
const shouldExclude = (path2, projectRoot) => {
|
|
64
|
-
const res = tamaguiOptions.shouldExtract?.(path2, projectRoot);
|
|
65
|
-
return typeof res == "boolean" ? !res : isInComponentModule(path2) ? !1 : shouldExcludeDefault(path2, projectRoot);
|
|
66
|
-
}, rnw = tamaguiOptions.useReactNativeWebLite ? "react-native-web-lite" : "react-native-web", tamaguiAliases = Object.fromEntries(
|
|
67
|
-
safeResolves([
|
|
68
|
-
["@tamagui/core/reset.css", "@tamagui/core/reset.css"],
|
|
69
|
-
["@tamagui/core", "@tamagui/core"],
|
|
70
|
-
["@tamagui/web", "@tamagui/web"],
|
|
71
|
-
// web specific light react-native-svg, optional, can use svgs but had issues with compat
|
|
72
|
-
["react-native-svg", "@tamagui/react-native-svg"],
|
|
73
|
-
// fixes https://github.com/kentcdodds/mdx-bundler/issues/143
|
|
74
|
-
["react/jsx-runtime.js", "react/jsx-runtime"],
|
|
75
|
-
["react/jsx-runtime", "react/jsx-runtime"],
|
|
76
|
-
["react/jsx-dev-runtime.js", "react/jsx-dev-runtime"],
|
|
77
|
-
["react/jsx-dev-runtime", "react/jsx-dev-runtime"],
|
|
78
|
-
["react-native-reanimated", "react-native-reanimated"],
|
|
79
|
-
["react-native$", rnw],
|
|
80
|
-
["react-native-web$", rnw],
|
|
81
|
-
["@testing-library/react-native", "@tamagui/proxy-worm"],
|
|
82
|
-
["@gorhom/bottom-sheet$", "@gorhom/bottom-sheet"],
|
|
83
|
-
// fix reanimated 3
|
|
84
|
-
["react-native/Libraries/Renderer/shims/ReactFabric", "@tamagui/proxy-worm"],
|
|
85
|
-
...tamaguiOptions.aliasReactPackages ? [
|
|
86
|
-
["react", "react"],
|
|
87
|
-
["react-dom", "react-dom"]
|
|
88
|
-
] : []
|
|
89
|
-
])
|
|
90
|
-
), alias = {
|
|
91
|
-
...webpackConfig.resolve.alias || {},
|
|
92
|
-
...tamaguiAliases
|
|
93
|
-
};
|
|
94
|
-
process.env.DEBUG && console.info("Tamagui alias:", alias), process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
15
|
+
const prefix = `${isServer ? " ssr " : " web "} |`, SEP = path.sep;
|
|
16
|
+
process.env.ANALYZE === "true" && Object.assign(webpackConfig.optimization, {
|
|
95
17
|
concatenateModules: !1
|
|
96
|
-
})
|
|
97
|
-
const
|
|
18
|
+
});
|
|
19
|
+
const enableStudio = options.dev && options.nextRuntime === "nodejs" && isServer, tamaguiPlugin = new TamaguiPlugin({
|
|
20
|
+
enableStudio,
|
|
21
|
+
isServer,
|
|
22
|
+
...tamaguiOptions
|
|
23
|
+
}), defines = {
|
|
98
24
|
"process.env.IS_STATIC": JSON.stringify(""),
|
|
99
25
|
"process.env.TAMAGUI_TARGET": '"web"',
|
|
100
26
|
"process.env.TAMAGUI_IS_SERVER": JSON.stringify(isServer ? "true" : ""),
|
|
@@ -104,32 +30,13 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
104
30
|
process.env.TAMAGUI_DOES_SSR_CSS ?? (tamaguiOptions?.doesMutateThemes === !1 ? !0 : "mutates-themes")
|
|
105
31
|
)
|
|
106
32
|
},
|
|
33
|
+
// TODO move to TamaguiPlugin
|
|
107
34
|
// optimizes inserts automatically assuming CSS wont be "removed" on page change
|
|
108
35
|
...tamaguiOptions.emitSingleCSSFile && {
|
|
109
36
|
"process.env.TAMAGUI_INSERT_SELECTOR_TRIES": JSON.stringify("1")
|
|
110
37
|
}
|
|
111
38
|
};
|
|
112
|
-
webpackConfig.plugins.push(new webpack.DefinePlugin(defines))
|
|
113
|
-
const excludeExports = tamaguiOptions.excludeReactNativeWebExports;
|
|
114
|
-
if (Array.isArray(excludeExports))
|
|
115
|
-
try {
|
|
116
|
-
const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(
|
|
117
|
-
"|"
|
|
118
|
-
)}).*js`, regex = new RegExp(regexStr);
|
|
119
|
-
webpackConfig.plugins.push(
|
|
120
|
-
new webpack.NormalModuleReplacementPlugin(
|
|
121
|
-
regex,
|
|
122
|
-
resolveEsm("@tamagui/proxy-worm")
|
|
123
|
-
)
|
|
124
|
-
);
|
|
125
|
-
} catch {
|
|
126
|
-
console.warn(
|
|
127
|
-
`Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
|
|
128
|
-
", "
|
|
129
|
-
)}`
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
if (process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
39
|
+
if (webpackConfig.plugins.push(new webpack.DefinePlugin(defines)), process.env.IGNORE_TS_CONFIG_PATHS && (process.env.DEBUG && console.info(prefix, "ignoring tsconfig paths"), webpackConfig.resolve.plugins[0] && (delete webpackConfig.resolve.plugins[0].paths["@tamagui/*"], delete webpackConfig.resolve.plugins[0].paths.tamagui)), isServer || (nextConfig.modularizeImports ??= {}, nextConfig.modularizeImports["@tamagui/lucide-icons"] = {
|
|
133
40
|
transform: "@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}",
|
|
134
41
|
skipDefaultConversion: !0
|
|
135
42
|
}), isServer) {
|
|
@@ -144,7 +51,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
144
51
|
if (userRes !== void 0)
|
|
145
52
|
return userRes;
|
|
146
53
|
}
|
|
147
|
-
if (isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
54
|
+
if (tamaguiPlugin.isInComponentModule(fullPath) || fullPath.includes("react-native-web") || fullPath === "react-native" || fullPath.startsWith(`react-native${SEP}`))
|
|
148
55
|
return !1;
|
|
149
56
|
if (
|
|
150
57
|
// feather icons uses react-native-svg which needs to be aliased
|
|
@@ -206,15 +113,7 @@ const withTamagui = (tamaguiOptions) => (nextConfig = {}) => {
|
|
|
206
113
|
use: cssLoader
|
|
207
114
|
});
|
|
208
115
|
}
|
|
209
|
-
|
|
210
|
-
return webpackConfig.plugins.push(
|
|
211
|
-
new TamaguiPlugin({
|
|
212
|
-
enableStudio,
|
|
213
|
-
isServer,
|
|
214
|
-
exclude: (path2) => shouldExclude(path2, options.dir),
|
|
215
|
-
...tamaguiOptions
|
|
216
|
-
})
|
|
217
|
-
), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
116
|
+
return webpackConfig.plugins.push(tamaguiPlugin), typeof nextConfig.webpack == "function" ? nextConfig.webpack(webpackConfig, options) : webpackConfig;
|
|
218
117
|
}
|
|
219
118
|
};
|
|
220
119
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/withTamagui.ts"],
|
|
4
|
-
"mappings": "AAAA,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/next-plugin",
|
|
3
|
-
"version": "1.82.
|
|
3
|
+
"version": "1.82.9",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -21,22 +21,21 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@babel/preset-react": "^7.23.3",
|
|
24
|
-
"@tamagui/proxy-worm": "1.82.
|
|
25
|
-
"@tamagui/react-native-svg": "1.82.
|
|
26
|
-
"@tamagui/static": "1.82.
|
|
24
|
+
"@tamagui/proxy-worm": "1.82.9",
|
|
25
|
+
"@tamagui/react-native-svg": "1.82.9",
|
|
26
|
+
"@tamagui/static": "1.82.9",
|
|
27
27
|
"babel-loader": "^9.1.2",
|
|
28
28
|
"browserslist": "^4.22.2",
|
|
29
29
|
"css-loader": "^6.7.4",
|
|
30
30
|
"esbuild-loader": "^3.0.1",
|
|
31
|
-
"esm-resolve": "^1.0.8",
|
|
32
31
|
"file-loader": "^6.2.0",
|
|
33
32
|
"html-webpack-plugin": "^5.5.0",
|
|
34
|
-
"tamagui-loader": "1.82.
|
|
33
|
+
"tamagui-loader": "1.82.9",
|
|
35
34
|
"thread-loader": "^4.0.1",
|
|
36
35
|
"url-loader": "^4.1.1"
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
|
-
"@tamagui/build": "1.82.
|
|
38
|
+
"@tamagui/build": "1.82.9",
|
|
40
39
|
"next": "^14.0.4"
|
|
41
40
|
},
|
|
42
41
|
"peerDependencies": {
|
package/src/withTamagui.ts
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import path, { dirname, join } from 'path'
|
|
1
|
+
import path from 'path'
|
|
3
2
|
|
|
4
3
|
import browserslist from 'browserslist'
|
|
5
|
-
import buildResolver from 'esm-resolve'
|
|
6
4
|
import { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'
|
|
7
5
|
import { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'
|
|
8
|
-
import {
|
|
9
|
-
PluginOptions as LoaderPluginOptions,
|
|
10
|
-
TamaguiPlugin,
|
|
11
|
-
shouldExclude as shouldExcludeDefault,
|
|
12
|
-
} from 'tamagui-loader'
|
|
6
|
+
import { PluginOptions as LoaderPluginOptions, TamaguiPlugin } from 'tamagui-loader'
|
|
13
7
|
import webpack from 'webpack'
|
|
14
8
|
|
|
15
9
|
export type WithTamaguiProps = LoaderPluginOptions & {
|
|
@@ -40,10 +34,6 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
40
34
|
webpack: (webpackConfig: any, options: any) => {
|
|
41
35
|
const { dir, config, dev, isServer } = options
|
|
42
36
|
|
|
43
|
-
const resolver = buildResolver(join(dir, 'index.js'), {
|
|
44
|
-
constraints: 'node',
|
|
45
|
-
})
|
|
46
|
-
|
|
47
37
|
// @ts-ignore
|
|
48
38
|
if (typeof globalThis['__DEV__'] === 'undefined') {
|
|
49
39
|
// @ts-ignore
|
|
@@ -56,129 +46,20 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
56
46
|
}
|
|
57
47
|
|
|
58
48
|
const prefix = `${isServer ? ' ssr ' : ' web '} |`
|
|
59
|
-
|
|
60
|
-
const safeResolves = (resolves: [string, string][], multiple = false) => {
|
|
61
|
-
const res: string[][] = []
|
|
62
|
-
for (const [out, mod] of resolves) {
|
|
63
|
-
if (out.endsWith('$')) {
|
|
64
|
-
res.push([out, mod])
|
|
65
|
-
continue
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
res.push([out, resolveEsm(mod)])
|
|
69
|
-
if (multiple) {
|
|
70
|
-
res.push([out, resolveEsm(mod, true)])
|
|
71
|
-
}
|
|
72
|
-
} catch (err) {
|
|
73
|
-
if (out.includes(`@gorhom/bottom-sheet`)) {
|
|
74
|
-
continue
|
|
75
|
-
}
|
|
76
|
-
if (process.env.DEBUG?.startsWith('tamagui')) {
|
|
77
|
-
console.info(prefix, `withTamagui skipping resolving ${out}`, err)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return res
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const resolveEsm = (relativePath: string, onlyRequire = false) => {
|
|
85
|
-
if (isServer || onlyRequire) {
|
|
86
|
-
return require.resolve(relativePath)
|
|
87
|
-
}
|
|
88
|
-
const esm = resolver(relativePath)
|
|
89
|
-
return esm ? path.join(dir, esm) : require.resolve(relativePath)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
49
|
const SEP = path.sep
|
|
93
50
|
|
|
94
|
-
// automatically compile our given components
|
|
95
|
-
const componentsFullPaths = safeResolves(
|
|
96
|
-
tamaguiOptions.components.map(
|
|
97
|
-
(moduleName) => [moduleName, moduleName] as [string, string]
|
|
98
|
-
),
|
|
99
|
-
true
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {
|
|
103
|
-
let rootPath = dirname(fullPath as string)
|
|
104
|
-
while (rootPath.length > 1) {
|
|
105
|
-
const pkg = join(rootPath, 'package.json')
|
|
106
|
-
const hasPkg = existsSync(pkg)
|
|
107
|
-
if (hasPkg) {
|
|
108
|
-
return rootPath
|
|
109
|
-
} else {
|
|
110
|
-
rootPath = join(rootPath, '..')
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
function isInComponentModule(fullPath: string) {
|
|
117
|
-
return componentsBaseDirs.some((componentDir) =>
|
|
118
|
-
fullPath.startsWith(componentDir)
|
|
119
|
-
)
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// allows configuration
|
|
123
|
-
const shouldExclude = (path: string, projectRoot: string) => {
|
|
124
|
-
const res = tamaguiOptions.shouldExtract?.(path, projectRoot)
|
|
125
|
-
if (typeof res === 'boolean') {
|
|
126
|
-
return !res
|
|
127
|
-
}
|
|
128
|
-
if (isInComponentModule(path)) {
|
|
129
|
-
return false
|
|
130
|
-
}
|
|
131
|
-
return shouldExcludeDefault(path, projectRoot)
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const rnw = tamaguiOptions.useReactNativeWebLite
|
|
135
|
-
? 'react-native-web-lite'
|
|
136
|
-
: 'react-native-web'
|
|
137
|
-
|
|
138
|
-
const tamaguiAliases = Object.fromEntries(
|
|
139
|
-
safeResolves([
|
|
140
|
-
['@tamagui/core/reset.css', '@tamagui/core/reset.css'],
|
|
141
|
-
['@tamagui/core', '@tamagui/core'],
|
|
142
|
-
['@tamagui/web', '@tamagui/web'],
|
|
143
|
-
// web specific light react-native-svg, optional, can use svgs but had issues with compat
|
|
144
|
-
['react-native-svg', '@tamagui/react-native-svg'],
|
|
145
|
-
// fixes https://github.com/kentcdodds/mdx-bundler/issues/143
|
|
146
|
-
['react/jsx-runtime.js', 'react/jsx-runtime'],
|
|
147
|
-
['react/jsx-runtime', 'react/jsx-runtime'],
|
|
148
|
-
['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],
|
|
149
|
-
['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],
|
|
150
|
-
['react-native-reanimated', 'react-native-reanimated'],
|
|
151
|
-
['react-native$', rnw],
|
|
152
|
-
['react-native-web$', rnw],
|
|
153
|
-
['@testing-library/react-native', '@tamagui/proxy-worm'],
|
|
154
|
-
['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],
|
|
155
|
-
// fix reanimated 3
|
|
156
|
-
['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],
|
|
157
|
-
...(tamaguiOptions.aliasReactPackages
|
|
158
|
-
? ([
|
|
159
|
-
['react', 'react'],
|
|
160
|
-
['react-dom', 'react-dom'],
|
|
161
|
-
] as any)
|
|
162
|
-
: []),
|
|
163
|
-
])
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
const alias = {
|
|
167
|
-
...(webpackConfig.resolve.alias || {}),
|
|
168
|
-
...tamaguiAliases,
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (process.env.DEBUG) {
|
|
172
|
-
console.info('Tamagui alias:', alias)
|
|
173
|
-
}
|
|
174
|
-
|
|
175
51
|
if (process.env.ANALYZE === 'true') {
|
|
176
52
|
Object.assign(webpackConfig.optimization, {
|
|
177
53
|
concatenateModules: false,
|
|
178
54
|
})
|
|
179
55
|
}
|
|
180
56
|
|
|
181
|
-
|
|
57
|
+
const enableStudio = options.dev && options.nextRuntime === 'nodejs' && isServer
|
|
58
|
+
const tamaguiPlugin = new TamaguiPlugin({
|
|
59
|
+
enableStudio,
|
|
60
|
+
isServer,
|
|
61
|
+
...tamaguiOptions,
|
|
62
|
+
})
|
|
182
63
|
|
|
183
64
|
const defines = {
|
|
184
65
|
'process.env.IS_STATIC': JSON.stringify(''),
|
|
@@ -192,6 +73,7 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
192
73
|
),
|
|
193
74
|
}),
|
|
194
75
|
|
|
76
|
+
// TODO move to TamaguiPlugin
|
|
195
77
|
// optimizes inserts automatically assuming CSS wont be "removed" on page change
|
|
196
78
|
...(tamaguiOptions.emitSingleCSSFile && {
|
|
197
79
|
'process.env.TAMAGUI_INSERT_SELECTOR_TRIES': JSON.stringify('1'),
|
|
@@ -200,29 +82,6 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
200
82
|
|
|
201
83
|
webpackConfig.plugins.push(new webpack.DefinePlugin(defines))
|
|
202
84
|
|
|
203
|
-
const excludeExports = tamaguiOptions.excludeReactNativeWebExports
|
|
204
|
-
if (Array.isArray(excludeExports)) {
|
|
205
|
-
try {
|
|
206
|
-
const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(
|
|
207
|
-
'|'
|
|
208
|
-
)}).*js`
|
|
209
|
-
const regex = new RegExp(regexStr)
|
|
210
|
-
// console.info(prefix, 'exclude', regexStr)
|
|
211
|
-
webpackConfig.plugins.push(
|
|
212
|
-
new webpack.NormalModuleReplacementPlugin(
|
|
213
|
-
regex,
|
|
214
|
-
resolveEsm('@tamagui/proxy-worm')
|
|
215
|
-
)
|
|
216
|
-
)
|
|
217
|
-
} catch (err) {
|
|
218
|
-
console.warn(
|
|
219
|
-
`Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(
|
|
220
|
-
', '
|
|
221
|
-
)}`
|
|
222
|
-
)
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
85
|
if (process.env.IGNORE_TS_CONFIG_PATHS) {
|
|
227
86
|
if (process.env.DEBUG) {
|
|
228
87
|
console.info(prefix, 'ignoring tsconfig paths')
|
|
@@ -260,7 +119,7 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
260
119
|
}
|
|
261
120
|
}
|
|
262
121
|
|
|
263
|
-
if (isInComponentModule(fullPath)) {
|
|
122
|
+
if (tamaguiPlugin.isInComponentModule(fullPath)) {
|
|
264
123
|
return false
|
|
265
124
|
}
|
|
266
125
|
|
|
@@ -404,20 +263,7 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
|
|
|
404
263
|
}
|
|
405
264
|
}
|
|
406
265
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
webpackConfig.plugins.push(
|
|
410
|
-
new TamaguiPlugin({
|
|
411
|
-
enableStudio,
|
|
412
|
-
isServer,
|
|
413
|
-
exclude: (path: string) => {
|
|
414
|
-
const res = shouldExclude(path, options.dir)
|
|
415
|
-
// console.info(`shouldExclude`, res, path)
|
|
416
|
-
return res
|
|
417
|
-
},
|
|
418
|
-
...tamaguiOptions,
|
|
419
|
-
})
|
|
420
|
-
)
|
|
266
|
+
webpackConfig.plugins.push(tamaguiPlugin)
|
|
421
267
|
|
|
422
268
|
if (typeof nextConfig.webpack === 'function') {
|
|
423
269
|
return nextConfig.webpack(webpackConfig, options)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAiB,MAAM,gBAAgB,CAAA;AAGpF,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG;IACnD,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAA;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC1E,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;KACjB,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,mBAAoB,gBAAgB,mBACtC,GAAG,QAuPxB,CAAA"}
|