Skip to content

Commit

Permalink
fix(react): load svg component in buildable library
Browse files Browse the repository at this point in the history
added svg and url loaders to rollup config of buildabel react library, like in webpack for react app.

ISSUES CLOSED: #6761
  • Loading branch information
YehudaGold committed Oct 14, 2022
1 parent bee29dd commit 8317dde
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 1 deletion.
2 changes: 2 additions & 0 deletions package.json
Expand Up @@ -73,6 +73,7 @@
"@rollup/plugin-image": "^2.1.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.0.4",
"@rollup/plugin-url": "^7.0.0",
"@schematics/angular": "~14.2.0",
"@storybook/addon-essentials": "~6.5.9",
"@storybook/addon-knobs": "~6.3.0",
Expand All @@ -82,6 +83,7 @@
"@storybook/core-server": "~6.5.9",
"@storybook/manager-webpack5": "~6.5.9",
"@storybook/react": "~6.5.9",
"@svgr/rollup": "^6.1.2",
"@svgr/webpack": "^6.1.2",
"@swc-node/register": "^1.4.2",
"@swc/cli": "~0.1.55",
Expand Down
2 changes: 2 additions & 0 deletions packages/react/package.json
Expand Up @@ -44,6 +44,8 @@
"@nrwl/workspace": "file:../workspace",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
"@phenomnomnominal/tsquery": "4.1.1",
"@rollup/plugin-url": "^7.0.0",
"@svgr/rollup": "^6.1.2",
"@svgr/webpack": "^6.1.2",
"chalk": "4.1.0",
"css-loader": "^6.4.0",
Expand Down
18 changes: 18 additions & 0 deletions packages/react/plugins/bundle-rollup.ts
@@ -1,5 +1,9 @@
import * as rollup from 'rollup';

// These use require because the ES import isn't correct.
const url = require('@rollup/plugin-url');
const svg = require('@svgr/rollup');

function getRollupOptions(options: rollup.RollupOptions) {
const extraGlobals = {
react: 'React',
Expand All @@ -8,6 +12,7 @@ function getRollupOptions(options: rollup.RollupOptions) {
'@emotion/react': 'emotionReact',
'@emotion/styled': 'emotionStyled',
};

if (Array.isArray(options.output)) {
options.output.forEach((o) => {
o.globals = { ...o.globals, ...extraGlobals };
Expand All @@ -21,6 +26,19 @@ function getRollupOptions(options: rollup.RollupOptions) {
},
};
}

options.plugins = [
svg({
svgo: false,
titleProp: true,
ref: true,
}),
url({
limit: 10000, // 10kB
}),
...options.plugins,
];

return options;
}

Expand Down
73 changes: 72 additions & 1 deletion yarn.lock
Expand Up @@ -4033,6 +4033,15 @@
is-module "^1.0.0"
resolve "^1.19.0"

"@rollup/plugin-url@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@rollup/plugin-url/-/plugin-url-7.0.0.tgz#571f6fd51c3d0e00f7404c67efdb93492bfac7f8"
integrity sha512-cIWcEObrmEPAU8q8NluGWlCPlQDuoSKvkyI3eOFO4fx6W02mLNj4ZEiUT0X2mKMIvQzoWL1feEK9d1yr1ICgrw==
dependencies:
"@rollup/pluginutils" "^4.2.1"
make-dir "^3.1.0"
mime "^2.4.6"

"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
Expand All @@ -4042,7 +4051,7 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"

"@rollup/pluginutils@^4.1.2":
"@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d"
integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==
Expand Down Expand Up @@ -5378,6 +5387,20 @@
"@svgr/babel-plugin-transform-react-native-svg" "^6.3.1"
"@svgr/babel-plugin-transform-svg-component" "^6.3.1"

"@svgr/babel-preset@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.4.0.tgz#b85bd1c64d03fcb3f930169541de4cf9ff4eaed9"
integrity sha512-Ytuh7N282fv2Cy1JePf6HZ29/G5Hb8mQAjx4iykPjvfFl9NK6o5lZavmewgjOGT8kNPtwgvheuOQn4CifHRUhQ==
dependencies:
"@svgr/babel-plugin-add-jsx-attribute" "^6.3.1"
"@svgr/babel-plugin-remove-jsx-attribute" "^6.3.1"
"@svgr/babel-plugin-remove-jsx-empty-expression" "^6.3.1"
"@svgr/babel-plugin-replace-jsx-attribute-value" "^6.3.1"
"@svgr/babel-plugin-svg-dynamic-title" "^6.3.1"
"@svgr/babel-plugin-svg-em-dimensions" "^6.3.1"
"@svgr/babel-plugin-transform-react-native-svg" "^6.3.1"
"@svgr/babel-plugin-transform-svg-component" "^6.3.1"

"@svgr/core@^6.3.1":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.3.1.tgz#752adf49d8d5473b15d76ca741961de093f715bd"
Expand All @@ -5387,6 +5410,16 @@
camelcase "^6.2.0"
cosmiconfig "^7.0.1"

"@svgr/core@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.4.0.tgz#95878c7b23962febc14735885bdb9f35ee2735e5"
integrity sha512-wU9uyF6BUnwAqG7fDOowmDQzmbvovj1uq/iETfMK9xwQNaT+e7yN7SmDDcETXC72dnOrMcRuEWw0JEvpJha+yg==
dependencies:
"@svgr/babel-preset" "^6.4.0"
"@svgr/plugin-jsx" "^6.4.0"
camelcase "^6.2.0"
cosmiconfig "^7.0.1"

"@svgr/hast-util-to-babel-ast@^6.3.1":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz#59614e24d2a4a28010e02089213b3448d905769d"
Expand All @@ -5395,6 +5428,14 @@
"@babel/types" "^7.18.4"
entities "^4.3.0"

"@svgr/hast-util-to-babel-ast@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.4.0.tgz#864032f02fdc7fc9c7cd62480417cc54341cb9bd"
integrity sha512-PjcU8jCneKXJnrREycsgfgQ/bzR1ogSKC5MBeUu2wmEoJIjzXX7X14DDktUjU9bkBy26yMDiVHn46Nl82P3WEg==
dependencies:
"@babel/types" "^7.18.4"
entities "^4.3.0"

"@svgr/plugin-jsx@^6.3.1":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz#de7b2de824296b836d6b874d498377896e367f50"
Expand All @@ -5405,6 +5446,16 @@
"@svgr/hast-util-to-babel-ast" "^6.3.1"
svg-parser "^2.0.4"

"@svgr/plugin-jsx@^6.4.0":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.4.0.tgz#f756b7d71fd535801e042cd5d5038eebd318582d"
integrity sha512-gu6E7v8qRAtCxbymI1et3G7athogvKvzsJkSWiHVZsuVZbyx5O2b7+DIkKvAGh2RvEzgSvfGf8QD1BaHal2vBw==
dependencies:
"@babel/core" "^7.18.5"
"@svgr/babel-preset" "^6.4.0"
"@svgr/hast-util-to-babel-ast" "^6.4.0"
svg-parser "^2.0.4"

"@svgr/plugin-svgo@^6.3.1":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz#3c1ff2efaed10e5c5d35a6cae7bacaedc18b5d4a"
Expand All @@ -5414,6 +5465,21 @@
deepmerge "^4.2.2"
svgo "^2.8.0"

"@svgr/rollup@^6.1.2":
version "6.4.0"
resolved "https://registry.yarnpkg.com/@svgr/rollup/-/rollup-6.4.0.tgz#ac673341139fbd5cf6a7d30444a47187f4959284"
integrity sha512-LOtqSGUUP41DY/puM8zM5sCMlnGJhx4bXenzGwMxdlxuwhNUJgwYdWQnycMfAdCDpSlOoyYPCsCRu3g16sMJzA==
dependencies:
"@babel/core" "^7.18.5"
"@babel/plugin-transform-react-constant-elements" "^7.17.12"
"@babel/preset-env" "^7.18.2"
"@babel/preset-react" "^7.17.12"
"@babel/preset-typescript" "^7.17.12"
"@rollup/pluginutils" "^4.2.1"
"@svgr/core" "^6.4.0"
"@svgr/plugin-jsx" "^6.4.0"
"@svgr/plugin-svgo" "^6.3.1"

"@svgr/webpack@^6.1.2":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.3.1.tgz#001d03236ebb03bf47c0a4b92d5423e05095ebe6"
Expand Down Expand Up @@ -15718,6 +15784,11 @@ mime@^2.4.4, mime@~2.5.2:
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==

mime@^2.4.6:
version "2.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==

mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
Expand Down

0 comments on commit 8317dde

Please sign in to comment.