@tamagui/next-plugin 1.0.0-alpha.46 → 1.0.0-alpha.47

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.
@@ -62,12 +62,13 @@ const withTamagui = /* @__PURE__ */ __name((tamaguiOptions) => {
62
62
  const isNext12 = typeof ((_a = options.config) == null ? void 0 : _a.swcMinify) === "boolean";
63
63
  const jsxRuntime = require.resolve("react/jsx-runtime.js");
64
64
  const jsxDevRuntime = require.resolve("react/jsx-dev-runtime.js");
65
+ const rnw = require.resolve("react-native-web");
65
66
  webpackConfig.resolve.alias = __spreadProps(__spreadValues({}, webpackConfig.resolve.alias || {}), {
66
67
  "react/jsx-runtime.js": jsxRuntime,
67
68
  "react/jsx-runtime": jsxRuntime,
68
69
  "react/jsx-dev-runtime.js": jsxDevRuntime,
69
70
  "react/jsx-dev-runtime": jsxDevRuntime,
70
- "react-native$": "react-native-web",
71
+ "react-native$": rnw,
71
72
  "react-native-web/src/modules/normalizeColor": require.resolve("react-native-web/dist/cjs/modules/normalizeColor"),
72
73
  react: require.resolve("react"),
73
74
  "react-dom": require.resolve("react-dom")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withTamagui.ts"],
4
- "sourcesContent": ["import path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport webpack from 'webpack'\n\nexport const withTamagui = (tamaguiOptions: TamaguiOptions) => {\n return (nextConfig: any = {}) => {\n return Object.assign({}, nextConfig, {\n webpack: (webpackConfig: any, options) => {\n const { dir, config, dev, isServer } = options\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n const jsxRuntime = require.resolve('react/jsx-runtime.js')\n const jsxDevRuntime = require.resolve('react/jsx-dev-runtime.js')\n\n webpackConfig.resolve.alias = {\n ...(webpackConfig.resolve.alias || {}),\n 'react/jsx-runtime.js': jsxRuntime,\n 'react/jsx-runtime': jsxRuntime,\n 'react/jsx-dev-runtime.js': jsxDevRuntime,\n 'react/jsx-dev-runtime': jsxDevRuntime,\n 'react-native$': 'react-native-web',\n 'react-native-web/src/modules/normalizeColor': require.resolve(\n 'react-native-web/dist/cjs/modules/normalizeColor'\n ),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n }\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n })\n )\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n console.log('ignoring tsconfig paths, they mess up transpile')\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n\n // TODO document and make configurable\n // replace minifier with css-minimizer-webpack-plugin which handles deduping atomic styles\n const cssMin = webpackConfig.optimization.minimizer.find((x) =>\n x.toString().includes('css-minimizer-plugin')\n )\n if (cssMin) {\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.slice(\n cssMin.index,\n 1\n )\n }\n webpackConfig.optimization.minimizer.push(new CssMinimizerPlugin())\n\n if (!webpackConfig.resolve.extensions.includes('.web.js')) {\n webpackConfig.resolve.extensions = ['.web.js', ...webpackConfig.resolve.extensions]\n }\n\n // look for compiled js with jsx intact as specified by module:jsx\n webpackConfig.resolve.mainFields.unshift('module:jsx')\n\n const isWebpack5 = !!config.future?.webpack5 || typeof config.webpack5 === 'undefined'\n\n const includeModule = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n if (/^\\@?react-native-/.test(request)) {\n return false\n }\n if (\n fullPath.startsWith('react-native-web') ||\n fullPath.includes('node_modules/react-native-web')\n ) {\n return `commonjs ${fullPath}`\n }\n if (/^(react-dom|react)$/.test(fullPath)) {\n return `commonjs ${fullPath}`\n }\n return true\n }\n\n if (isServer) {\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n if (isWebpack5) {\n return (ctx, cb) => {\n const res = includeModule(ctx.context, ctx.request)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }\n return (ctx, req, cb) => {\n const res = includeModule(ctx, req)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }),\n ]\n }\n\n const oneOfRule = webpackConfig.module.rules.find((x) => !!x.oneOf)\n\n if (oneOfRule) {\n if (!dev) {\n // replace nextjs picky style rules with simple minicssextract\n const MiniCssExtractPlugin = require('mini-css-extract-plugin')\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n use: [MiniCssExtractPlugin.loader, 'css-loader'],\n sideEffects: true,\n })\n const idx = webpackConfig.plugins.findIndex(\n (x) => x.constructor.name === 'NextMiniCssExtractPlugin'\n )\n webpackConfig.plugins.splice(\n idx,\n 1,\n new MiniCssExtractPlugin({\n filename: 'static/css/[name].[contenthash].css',\n ignoreOrder: true,\n })\n )\n } else {\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n sideEffects: true,\n use: getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isClient: !isServer,\n isServer,\n isDevelopment: true,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n ),\n })\n }\n }\n\n // add loader\n const shouldExclude = (x) => {\n // analyze everything in our jsx dir\n // analyze everything in the components dirs\n const shouldInclude =\n x.includes(options.dir) ||\n tamaguiOptions.components.some(\n (c) => x.includes(`/node_modules/${c}`) || x.includes(`${c}/dist/jsx/`)\n )\n if (!shouldInclude) {\n return true\n }\n return false\n }\n\n if (isNext12) {\n const oneOfJSRules = webpackConfig.module.rules[2].oneOf\n const swcLoaderIndex = 3\n const swcLoader = oneOfJSRules[swcLoaderIndex]\n // put an earlier loader where we just do tamagui stuff before regular swc\n oneOfJSRules.splice(swcLoaderIndex, 0, {\n test: /\\.(jsx?|tsx?)$/,\n exclude: shouldExclude,\n use: [\n ...[].concat(swcLoader.use),\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n })\n } else {\n // next 11 modify loader\n const [first, second, ...rest] = webpackConfig.module.rules\n webpackConfig.module.rules = [\n first,\n second,\n {\n test: /\\.(tsx|jsx)$/,\n exclude: shouldExclude,\n use: [\n 'thread-loader',\n {\n loader: 'esbuild-loader',\n options: {\n loader: 'tsx',\n minify: false,\n },\n },\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n },\n ...rest,\n ]\n }\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n })\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {}\n\n return browsers\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport webpack from 'webpack'\n\nexport const withTamagui = (tamaguiOptions: TamaguiOptions) => {\n return (nextConfig: any = {}) => {\n return Object.assign({}, nextConfig, {\n webpack: (webpackConfig: any, options) => {\n const { dir, config, dev, isServer } = options\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n const jsxRuntime = require.resolve('react/jsx-runtime.js')\n const jsxDevRuntime = require.resolve('react/jsx-dev-runtime.js')\n const rnw = require.resolve('react-native-web')\n\n webpackConfig.resolve.alias = {\n ...(webpackConfig.resolve.alias || {}),\n 'react/jsx-runtime.js': jsxRuntime,\n 'react/jsx-runtime': jsxRuntime,\n 'react/jsx-dev-runtime.js': jsxDevRuntime,\n 'react/jsx-dev-runtime': jsxDevRuntime,\n 'react-native$': rnw,\n 'react-native-web/src/modules/normalizeColor': require.resolve(\n 'react-native-web/dist/cjs/modules/normalizeColor'\n ),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n }\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n })\n )\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n console.log('ignoring tsconfig paths, they mess up transpile')\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n\n // TODO document and make configurable\n // replace minifier with css-minimizer-webpack-plugin which handles deduping atomic styles\n const cssMin = webpackConfig.optimization.minimizer.find((x) =>\n x.toString().includes('css-minimizer-plugin')\n )\n if (cssMin) {\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.slice(\n cssMin.index,\n 1\n )\n }\n webpackConfig.optimization.minimizer.push(new CssMinimizerPlugin())\n\n if (!webpackConfig.resolve.extensions.includes('.web.js')) {\n webpackConfig.resolve.extensions = ['.web.js', ...webpackConfig.resolve.extensions]\n }\n\n // look for compiled js with jsx intact as specified by module:jsx\n webpackConfig.resolve.mainFields.unshift('module:jsx')\n\n const isWebpack5 = !!config.future?.webpack5 || typeof config.webpack5 === 'undefined'\n\n const includeModule = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n if (/^\\@?react-native-/.test(request)) {\n return false\n }\n if (\n fullPath.startsWith('react-native-web') ||\n fullPath.includes('node_modules/react-native-web')\n ) {\n return `commonjs ${fullPath}`\n }\n if (/^(react-dom|react)$/.test(fullPath)) {\n return `commonjs ${fullPath}`\n }\n return true\n }\n\n if (isServer) {\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n if (isWebpack5) {\n return (ctx, cb) => {\n const res = includeModule(ctx.context, ctx.request)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }\n return (ctx, req, cb) => {\n const res = includeModule(ctx, req)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }),\n ]\n }\n\n const oneOfRule = webpackConfig.module.rules.find((x) => !!x.oneOf)\n\n if (oneOfRule) {\n if (!dev) {\n // replace nextjs picky style rules with simple minicssextract\n const MiniCssExtractPlugin = require('mini-css-extract-plugin')\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n use: [MiniCssExtractPlugin.loader, 'css-loader'],\n sideEffects: true,\n })\n const idx = webpackConfig.plugins.findIndex(\n (x) => x.constructor.name === 'NextMiniCssExtractPlugin'\n )\n webpackConfig.plugins.splice(\n idx,\n 1,\n new MiniCssExtractPlugin({\n filename: 'static/css/[name].[contenthash].css',\n ignoreOrder: true,\n })\n )\n } else {\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n sideEffects: true,\n use: getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isClient: !isServer,\n isServer,\n isDevelopment: true,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n ),\n })\n }\n }\n\n // add loader\n const shouldExclude = (x) => {\n // analyze everything in our jsx dir\n // analyze everything in the components dirs\n const shouldInclude =\n x.includes(options.dir) ||\n tamaguiOptions.components.some(\n (c) => x.includes(`/node_modules/${c}`) || x.includes(`${c}/dist/jsx/`)\n )\n if (!shouldInclude) {\n return true\n }\n return false\n }\n\n if (isNext12) {\n const oneOfJSRules = webpackConfig.module.rules[2].oneOf\n const swcLoaderIndex = 3\n const swcLoader = oneOfJSRules[swcLoaderIndex]\n // put an earlier loader where we just do tamagui stuff before regular swc\n oneOfJSRules.splice(swcLoaderIndex, 0, {\n test: /\\.(jsx?|tsx?)$/,\n exclude: shouldExclude,\n use: [\n ...[].concat(swcLoader.use),\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n })\n } else {\n // next 11 modify loader\n const [first, second, ...rest] = webpackConfig.module.rules\n webpackConfig.module.rules = [\n first,\n second,\n {\n test: /\\.(tsx|jsx)$/,\n exclude: shouldExclude,\n use: [\n 'thread-loader',\n {\n loader: 'esbuild-loader',\n options: {\n loader: 'tsx',\n minify: false,\n },\n },\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n },\n ...rest,\n ]\n }\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n })\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {}\n\n return browsers\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -15,13 +15,14 @@ const withTamagui = /* @__PURE__ */ __name((tamaguiOptions) => {
15
15
  const isNext12 = typeof ((_a = options.config) == null ? void 0 : _a.swcMinify) === "boolean";
16
16
  const jsxRuntime = require.resolve("react/jsx-runtime.js");
17
17
  const jsxDevRuntime = require.resolve("react/jsx-dev-runtime.js");
18
+ const rnw = require.resolve("react-native-web");
18
19
  webpackConfig.resolve.alias = {
19
20
  ...webpackConfig.resolve.alias || {},
20
21
  "react/jsx-runtime.js": jsxRuntime,
21
22
  "react/jsx-runtime": jsxRuntime,
22
23
  "react/jsx-dev-runtime.js": jsxDevRuntime,
23
24
  "react/jsx-dev-runtime": jsxDevRuntime,
24
- "react-native$": "react-native-web",
25
+ "react-native$": rnw,
25
26
  "react-native-web/src/modules/normalizeColor": require.resolve("react-native-web/dist/cjs/modules/normalizeColor"),
26
27
  react: require.resolve("react"),
27
28
  "react-dom": require.resolve("react-dom")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withTamagui.ts"],
4
- "sourcesContent": ["import path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport webpack from 'webpack'\n\nexport const withTamagui = (tamaguiOptions: TamaguiOptions) => {\n return (nextConfig: any = {}) => {\n return Object.assign({}, nextConfig, {\n webpack: (webpackConfig: any, options) => {\n const { dir, config, dev, isServer } = options\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n const jsxRuntime = require.resolve('react/jsx-runtime.js')\n const jsxDevRuntime = require.resolve('react/jsx-dev-runtime.js')\n\n webpackConfig.resolve.alias = {\n ...(webpackConfig.resolve.alias || {}),\n 'react/jsx-runtime.js': jsxRuntime,\n 'react/jsx-runtime': jsxRuntime,\n 'react/jsx-dev-runtime.js': jsxDevRuntime,\n 'react/jsx-dev-runtime': jsxDevRuntime,\n 'react-native$': 'react-native-web',\n 'react-native-web/src/modules/normalizeColor': require.resolve(\n 'react-native-web/dist/cjs/modules/normalizeColor'\n ),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n }\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n })\n )\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n console.log('ignoring tsconfig paths, they mess up transpile')\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n\n // TODO document and make configurable\n // replace minifier with css-minimizer-webpack-plugin which handles deduping atomic styles\n const cssMin = webpackConfig.optimization.minimizer.find((x) =>\n x.toString().includes('css-minimizer-plugin')\n )\n if (cssMin) {\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.slice(\n cssMin.index,\n 1\n )\n }\n webpackConfig.optimization.minimizer.push(new CssMinimizerPlugin())\n\n if (!webpackConfig.resolve.extensions.includes('.web.js')) {\n webpackConfig.resolve.extensions = ['.web.js', ...webpackConfig.resolve.extensions]\n }\n\n // look for compiled js with jsx intact as specified by module:jsx\n webpackConfig.resolve.mainFields.unshift('module:jsx')\n\n const isWebpack5 = !!config.future?.webpack5 || typeof config.webpack5 === 'undefined'\n\n const includeModule = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n if (/^\\@?react-native-/.test(request)) {\n return false\n }\n if (\n fullPath.startsWith('react-native-web') ||\n fullPath.includes('node_modules/react-native-web')\n ) {\n return `commonjs ${fullPath}`\n }\n if (/^(react-dom|react)$/.test(fullPath)) {\n return `commonjs ${fullPath}`\n }\n return true\n }\n\n if (isServer) {\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n if (isWebpack5) {\n return (ctx, cb) => {\n const res = includeModule(ctx.context, ctx.request)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }\n return (ctx, req, cb) => {\n const res = includeModule(ctx, req)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }),\n ]\n }\n\n const oneOfRule = webpackConfig.module.rules.find((x) => !!x.oneOf)\n\n if (oneOfRule) {\n if (!dev) {\n // replace nextjs picky style rules with simple minicssextract\n const MiniCssExtractPlugin = require('mini-css-extract-plugin')\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n use: [MiniCssExtractPlugin.loader, 'css-loader'],\n sideEffects: true,\n })\n const idx = webpackConfig.plugins.findIndex(\n (x) => x.constructor.name === 'NextMiniCssExtractPlugin'\n )\n webpackConfig.plugins.splice(\n idx,\n 1,\n new MiniCssExtractPlugin({\n filename: 'static/css/[name].[contenthash].css',\n ignoreOrder: true,\n })\n )\n } else {\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n sideEffects: true,\n use: getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isClient: !isServer,\n isServer,\n isDevelopment: true,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n ),\n })\n }\n }\n\n // add loader\n const shouldExclude = (x) => {\n // analyze everything in our jsx dir\n // analyze everything in the components dirs\n const shouldInclude =\n x.includes(options.dir) ||\n tamaguiOptions.components.some(\n (c) => x.includes(`/node_modules/${c}`) || x.includes(`${c}/dist/jsx/`)\n )\n if (!shouldInclude) {\n return true\n }\n return false\n }\n\n if (isNext12) {\n const oneOfJSRules = webpackConfig.module.rules[2].oneOf\n const swcLoaderIndex = 3\n const swcLoader = oneOfJSRules[swcLoaderIndex]\n // put an earlier loader where we just do tamagui stuff before regular swc\n oneOfJSRules.splice(swcLoaderIndex, 0, {\n test: /\\.(jsx?|tsx?)$/,\n exclude: shouldExclude,\n use: [\n ...[].concat(swcLoader.use),\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n })\n } else {\n // next 11 modify loader\n const [first, second, ...rest] = webpackConfig.module.rules\n webpackConfig.module.rules = [\n first,\n second,\n {\n test: /\\.(tsx|jsx)$/,\n exclude: shouldExclude,\n use: [\n 'thread-loader',\n {\n loader: 'esbuild-loader',\n options: {\n loader: 'tsx',\n minify: false,\n },\n },\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n },\n ...rest,\n ]\n }\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n })\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {}\n\n return browsers\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport CssMinimizerPlugin from 'css-minimizer-webpack-plugin'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport webpack from 'webpack'\n\nexport const withTamagui = (tamaguiOptions: TamaguiOptions) => {\n return (nextConfig: any = {}) => {\n return Object.assign({}, nextConfig, {\n webpack: (webpackConfig: any, options) => {\n const { dir, config, dev, isServer } = options\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n const jsxRuntime = require.resolve('react/jsx-runtime.js')\n const jsxDevRuntime = require.resolve('react/jsx-dev-runtime.js')\n const rnw = require.resolve('react-native-web')\n\n webpackConfig.resolve.alias = {\n ...(webpackConfig.resolve.alias || {}),\n 'react/jsx-runtime.js': jsxRuntime,\n 'react/jsx-runtime': jsxRuntime,\n 'react/jsx-dev-runtime.js': jsxDevRuntime,\n 'react/jsx-dev-runtime': jsxDevRuntime,\n 'react-native$': rnw,\n 'react-native-web/src/modules/normalizeColor': require.resolve(\n 'react-native-web/dist/cjs/modules/normalizeColor'\n ),\n react: require.resolve('react'),\n 'react-dom': require.resolve('react-dom'),\n }\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n })\n )\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n console.log('ignoring tsconfig paths, they mess up transpile')\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n\n // TODO document and make configurable\n // replace minifier with css-minimizer-webpack-plugin which handles deduping atomic styles\n const cssMin = webpackConfig.optimization.minimizer.find((x) =>\n x.toString().includes('css-minimizer-plugin')\n )\n if (cssMin) {\n webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.slice(\n cssMin.index,\n 1\n )\n }\n webpackConfig.optimization.minimizer.push(new CssMinimizerPlugin())\n\n if (!webpackConfig.resolve.extensions.includes('.web.js')) {\n webpackConfig.resolve.extensions = ['.web.js', ...webpackConfig.resolve.extensions]\n }\n\n // look for compiled js with jsx intact as specified by module:jsx\n webpackConfig.resolve.mainFields.unshift('module:jsx')\n\n const isWebpack5 = !!config.future?.webpack5 || typeof config.webpack5 === 'undefined'\n\n const includeModule = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n if (/^\\@?react-native-/.test(request)) {\n return false\n }\n if (\n fullPath.startsWith('react-native-web') ||\n fullPath.includes('node_modules/react-native-web')\n ) {\n return `commonjs ${fullPath}`\n }\n if (/^(react-dom|react)$/.test(fullPath)) {\n return `commonjs ${fullPath}`\n }\n return true\n }\n\n if (isServer) {\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n if (isWebpack5) {\n return (ctx, cb) => {\n const res = includeModule(ctx.context, ctx.request)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }\n return (ctx, req, cb) => {\n const res = includeModule(ctx, req)\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n }),\n ]\n }\n\n const oneOfRule = webpackConfig.module.rules.find((x) => !!x.oneOf)\n\n if (oneOfRule) {\n if (!dev) {\n // replace nextjs picky style rules with simple minicssextract\n const MiniCssExtractPlugin = require('mini-css-extract-plugin')\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n use: [MiniCssExtractPlugin.loader, 'css-loader'],\n sideEffects: true,\n })\n const idx = webpackConfig.plugins.findIndex(\n (x) => x.constructor.name === 'NextMiniCssExtractPlugin'\n )\n webpackConfig.plugins.splice(\n idx,\n 1,\n new MiniCssExtractPlugin({\n filename: 'static/css/[name].[contenthash].css',\n ignoreOrder: true,\n })\n )\n } else {\n oneOfRule.oneOf.unshift({\n test: /\\.css$/i,\n sideEffects: true,\n use: getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isClient: !isServer,\n isServer,\n isDevelopment: true,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n ),\n })\n }\n }\n\n // add loader\n const shouldExclude = (x) => {\n // analyze everything in our jsx dir\n // analyze everything in the components dirs\n const shouldInclude =\n x.includes(options.dir) ||\n tamaguiOptions.components.some(\n (c) => x.includes(`/node_modules/${c}`) || x.includes(`${c}/dist/jsx/`)\n )\n if (!shouldInclude) {\n return true\n }\n return false\n }\n\n if (isNext12) {\n const oneOfJSRules = webpackConfig.module.rules[2].oneOf\n const swcLoaderIndex = 3\n const swcLoader = oneOfJSRules[swcLoaderIndex]\n // put an earlier loader where we just do tamagui stuff before regular swc\n oneOfJSRules.splice(swcLoaderIndex, 0, {\n test: /\\.(jsx?|tsx?)$/,\n exclude: shouldExclude,\n use: [\n ...[].concat(swcLoader.use),\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n })\n } else {\n // next 11 modify loader\n const [first, second, ...rest] = webpackConfig.module.rules\n webpackConfig.module.rules = [\n first,\n second,\n {\n test: /\\.(tsx|jsx)$/,\n exclude: shouldExclude,\n use: [\n 'thread-loader',\n {\n loader: 'esbuild-loader',\n options: {\n loader: 'tsx',\n minify: false,\n },\n },\n {\n loader: 'tamagui-loader',\n options: tamaguiOptions,\n },\n ],\n },\n ...rest,\n ]\n }\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n })\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {}\n\n return browsers\n}\n"],
5
+ "mappings": ";;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEO,MAAM,cAAc,wBAAC,mBAAmC;AAC7D,SAAO,CAAC,aAAkB,OAAO;AAC/B,WAAO,OAAO,OAAO,IAAI,YAAY;AAAA,MACnC,SAAS,CAAC,eAAoB,YAAY;AAZhD;AAaQ,cAAM,EAAE,KAAK,QAAQ,KAAK,aAAa;AAEvC,cAAM,WAAW,OAAO,eAAQ,WAAR,mBAAgB,eAAc;AAGtD,cAAM,aAA6B;AACnC,cAAM,gBAAgC;AACtC,cAAM,MAAsB;AAE5B,sBAAc,QAAQ,QAAQ;AAAA,aACxB,cAAc,QAAQ,SAAS;AAAA,UACnC,wBAAwB;AAAA,UACxB,qBAAqB;AAAA,UACrB,4BAA4B;AAAA,UAC5B,yBAAyB;AAAA,UACzB,iBAAiB;AAAA,UACjB,+CACE;AAAA,UAEF,OAAuB;AAAA,UACvB,aAA6B;AAAA;AAG/B,sBAAc,QAAQ,KACpB,IAAI,QAAQ,aAAa;AAAA,UACvB,8BAA8B;AAAA;AAIlC,YAAI,QAAQ,IAAI,wBAAwB;AACtC,kBAAQ,IAAI;AACZ,iBAAO,cAAc,QAAQ,QAAQ,GAAG,MAAM;AAC9C,iBAAO,cAAc,QAAQ,QAAQ,GAAG,MAAM;AAAA;AAKhD,cAAM,SAAS,cAAc,aAAa,UAAU,KAAK,CAAC,MACxD,EAAE,WAAW,SAAS;AAExB,YAAI,QAAQ;AACV,wBAAc,aAAa,YAAY,cAAc,aAAa,UAAU,MAC1E,OAAO,OACP;AAAA;AAGJ,sBAAc,aAAa,UAAU,KAAK,IAAI;AAE9C,YAAI,CAAC,cAAc,QAAQ,WAAW,SAAS,YAAY;AACzD,wBAAc,QAAQ,aAAa,CAAC,WAAW,GAAG,cAAc,QAAQ;AAAA;AAI1E,sBAAc,QAAQ,WAAW,QAAQ;AAEzC,cAAM,aAAa,CAAC,CAAC,cAAO,WAAP,mBAAe,aAAY,OAAO,OAAO,aAAa;AAE3E,cAAM,gBAAgB,wBAAC,SAAiB,YAAoB;AAC1D,gBAAM,WAAW,QAAQ,OAAO,MAAM,KAAK,KAAK,SAAS,WAAW;AACpE,cAAI,oBAAoB,KAAK,UAAU;AACrC,mBAAO;AAAA;AAET,cACE,SAAS,WAAW,uBACpB,SAAS,SAAS,kCAClB;AACA,mBAAO,YAAY;AAAA;AAErB,cAAI,sBAAsB,KAAK,WAAW;AACxC,mBAAO,YAAY;AAAA;AAErB,iBAAO;AAAA,WAda;AAiBtB,YAAI,UAAU;AAEZ,wBAAc,YAAY;AAAA,YACxB,GAAG,cAAc,UAAU,IAAI,CAAC,aAAa;AAC3C,kBAAI,OAAO,aAAa,YAAY;AAClC,uBAAO;AAAA;AAGT,kBAAI,YAAY;AACd,uBAAO,CAAC,KAAK,OAAO;AAClB,wBAAM,MAAM,cAAc,IAAI,SAAS,IAAI;AAC3C,sBAAI,OAAO,QAAQ,UAAU;AAC3B,2BAAO,GAAG,MAAM;AAAA;AAElB,sBAAI,KAAK;AACP,2BAAO,SAAS,KAAK;AAAA;AAEvB,yBAAO;AAAA;AAAA;AAGX,qBAAO,CAAC,KAAK,KAAK,OAAO;AACvB,sBAAM,MAAM,cAAc,KAAK;AAC/B,oBAAI,OAAO,QAAQ,UAAU;AAC3B,yBAAO,GAAG,MAAM;AAAA;AAElB,oBAAI,KAAK;AACP,yBAAO,SAAS,KAAK;AAAA;AAEvB,uBAAO;AAAA;AAAA;AAAA;AAAA;AAMf,cAAM,YAAY,cAAc,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAE7D,YAAI,WAAW;AACb,cAAI,CAAC,KAAK;AAER,kBAAM,uBAAuB,QAAQ;AACrC,sBAAU,MAAM,QAAQ;AAAA,cACtB,MAAM;AAAA,cACN,KAAK,CAAC,qBAAqB,QAAQ;AAAA,cACnC,aAAa;AAAA;AAEf,kBAAM,MAAM,cAAc,QAAQ,UAChC,CAAC,MAAM,EAAE,YAAY,SAAS;AAEhC,0BAAc,QAAQ,OACpB,KACA,GACA,IAAI,qBAAqB;AAAA,cACvB,UAAU;AAAA,cACV,aAAa;AAAA;AAAA,iBAGZ;AACL,sBAAU,MAAM,QAAQ;AAAA,cACtB,MAAM;AAAA,cACN,aAAa;AAAA,cACb,KAAK,mBAEH;AAAA,gBACE,aAAa,QAAQ,OAAO,eAAe,OAAO;AAAA,gBAClD,QAAQ,WAAW;AAAA,gBACnB,cAAc,WAAW,gBAAgB;AAAA,gBACzC,UAAU,CAAC;AAAA,gBACX;AAAA,gBACA,eAAe;AAAA,iBAGjB,MAAM,YAAY,KAAK,qBAAqB,KAAK,OACjD;AAAA;AAAA;AAAA;AAOR,cAAM,gBAAgB,wBAAC,MAAM;AAG3B,gBAAM,gBACJ,EAAE,SAAS,QAAQ,QACnB,eAAe,WAAW,KACxB,CAAC,MAAM,EAAE,SAAS,iBAAiB,QAAQ,EAAE,SAAS,GAAG;AAE7D,cAAI,CAAC,eAAe;AAClB,mBAAO;AAAA;AAET,iBAAO;AAAA,WAXa;AActB,YAAI,UAAU;AACZ,gBAAM,eAAe,cAAc,OAAO,MAAM,GAAG;AACnD,gBAAM,iBAAiB;AACvB,gBAAM,YAAY,aAAa;AAE/B,uBAAa,OAAO,gBAAgB,GAAG;AAAA,YACrC,MAAM;AAAA,YACN,SAAS;AAAA,YACT,KAAK;AAAA,cACH,GAAG,GAAG,OAAO,UAAU;AAAA,cACvB;AAAA,gBACE,QAAQ;AAAA,gBACR,SAAS;AAAA;AAAA;AAAA;AAAA,eAIV;AAEL,gBAAM,CAAC,OAAO,WAAW,QAAQ,cAAc,OAAO;AACtD,wBAAc,OAAO,QAAQ;AAAA,YAC3B;AAAA,YACA;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,SAAS;AAAA,cACT,KAAK;AAAA,gBACH;AAAA,gBACA;AAAA,kBACE,QAAQ;AAAA,kBACR,SAAS;AAAA,oBACP,QAAQ;AAAA,oBACR,QAAQ;AAAA;AAAA;AAAA,gBAGZ;AAAA,kBACE,QAAQ;AAAA,kBACR,SAAS;AAAA;AAAA;AAAA;AAAA,YAIf,GAAG;AAAA;AAAA;AAIP,YAAI,OAAO,WAAW,YAAY,YAAY;AAC5C,iBAAO,WAAW,QAAQ,eAAe;AAAA;AAG3C,eAAO;AAAA;AAAA;AAAA;AAAA,GA3NY;AAiO3B,8BAA8B,KAAK,eAAe;AAChD,MAAI;AACJ,MAAI;AACF,eAAW,aAAa,WAAW;AAAA,MACjC,MAAM;AAAA,MACN,KAAK,gBAAgB,gBAAgB;AAAA;AAAA,UAEvC;AAAA;AAEF,SAAO;AAAA;AATA;",
6
6
  "names": []
7
7
  }
@@ -15,13 +15,14 @@ const withTamagui = /* @__PURE__ */ __name((tamaguiOptions) => {
15
15
  const isNext12 = typeof ((_a = options.config) == null ? void 0 : _a.swcMinify) === "boolean";
16
16
  const jsxRuntime = require.resolve("react/jsx-runtime.js");
17
17
  const jsxDevRuntime = require.resolve("react/jsx-dev-runtime.js");
18
+ const rnw = require.resolve("react-native-web");
18
19
  webpackConfig.resolve.alias = {
19
20
  ...webpackConfig.resolve.alias || {},
20
21
  "react/jsx-runtime.js": jsxRuntime,
21
22
  "react/jsx-runtime": jsxRuntime,
22
23
  "react/jsx-dev-runtime.js": jsxDevRuntime,
23
24
  "react/jsx-dev-runtime": jsxDevRuntime,
24
- "react-native$": "react-native-web",
25
+ "react-native$": rnw,
25
26
  "react-native-web/src/modules/normalizeColor": require.resolve("react-native-web/dist/cjs/modules/normalizeColor"),
26
27
  react: require.resolve("react"),
27
28
  "react-dom": require.resolve("react-dom")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/next-plugin",
3
- "version": "1.0.0-alpha.46",
3
+ "version": "1.0.0-alpha.47",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "typings": "types",
@@ -16,12 +16,12 @@
16
16
  "watch": "tamagui-build --watch"
17
17
  },
18
18
  "dependencies": {
19
- "@tamagui/static": "^1.0.0-alpha.46",
19
+ "@tamagui/static": "^1.0.0-alpha.47",
20
20
  "browserslist": "^4.19.1",
21
21
  "css-minimizer-webpack-plugin": "^3.1.3",
22
22
  "esbuild-loader": "^2.18.0",
23
23
  "next-compose-plugins": "^2.2.1",
24
- "tamagui-loader": "^1.0.0-alpha.46",
24
+ "tamagui-loader": "^1.0.0-alpha.47",
25
25
  "thread-loader": "^3.0.4"
26
26
  },
27
27
  "devDependencies": {
@@ -34,5 +34,5 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "9043b00ecae482a1694ea28c0df4168b71397be3"
37
+ "gitHead": "56c7a683e431861e546ec56b2287ab63fd6fbe85"
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOhD,eAAO,MAAM,WAAW,mBAAoB,cAAc,mBACpC,GAAG,QA6NxB,CAAA"}
1
+ {"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOhD,eAAO,MAAM,WAAW,mBAAoB,cAAc,mBACpC,GAAG,QA8NxB,CAAA"}