Skip to content

Commit 82a1314

Browse files
authored
Downgrade react-textarea-autosize version to 8.3.4 to fix SSR document error (#1688)
<!-- How to write a good PR title: - Follow [the Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/). - Give as much context as necessary and as little as possible - Prefix it with [WIP] while it’s a work in progress --> ## Self Checklist - [x] I wrote a PR title in **English** and added an appropriate **label** to the PR. - [x] I wrote the commit message in **English** and to follow [**the Conventional Commits specification**](https://www.conventionalcommits.org/en/v1.0.0/). - [x] I [added the **changeset**](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md) about the changes that needed to be released. (or didn't have to) - [x] I wrote or updated **documentation** related to the changes. (or didn't have to) - [x] I wrote or updated **tests** related to the changes. (or didn't have to) - [x] I tested the changes in various browsers. (or didn't have to) - Windows: Chrome, Edge, (Optional) Firefox - macOS: Chrome, Edge, Safari, (Optional) Firefox ## Related Issue <!-- Please link to issue if one exists --> Fixes #1687 ## Summary <!-- Please brief explanation of the changes made --> - react-textarea-autosize의 버전을 `8.3.4` 로 다운그레이드하고, 버전을 고정합니다. - revert #1637 ## Details <!-- Please elaborate description of the changes --> #1637 에서 react-textarea-autosize의 변경으로 인해 rollup의 node module resolve 방식을 변경했습니다. SSR 환경에서도 browser용 번들을 바라보게되면서, `document` 관련 에러가 발생하여 빌드가 실패하는 문제가 발생했습니다. 이를 해결하고자 여러 방법을 고려해봤는데, 1. main module은 SSR용 모듈로 두고, browser용 exports field를 추가: 빌드 시 browser exports field를 고려하지 않고 있는 다른 사용처에서의 사이드 이펙트가 우려되어서 선택하지 않았습니다. 2. external dependency로 명시하여 peer dependency로 변경: Breaking change를 발생시키고 싶지 않았습니다. TextArea 컴포넌트를 사용하지 않는 사용처에서도 라이브러리 사용이 강제됩니다. peerDependenciesMeta.optional를 사용하는 방법으로 우회하더라도 매력적인 선택지는 아니라고 생각했습니다. 3. 런타임에 document 체크를 하는 로직 추가: 로직을 추가하고 테스트 해보았으나 여전히 에러가 발생했습니다. 자세히 빌드 과정(Next.js)을 뜯어보진 않았지만, 런타임을 고려하기 이전에 모든 모듈을 정적 분석 + 에러를 던지는 것으로 보입니다. 4. **다운그레이드 및 리버트** 기존에도 큰 문제없이 잘 동작하던 모듈이고, react-textarea-autosize의 변경사항을 봐도 서버 사이드에서 파일 사이즈의 감소 외에는 로직 변경이 없었습니다. 사용처에 별다른 영향이 없을 거로 판단하고 문제 해결을 위해 다운그레이드하는 방향으로 결정했습니다. ### Breaking change? (Yes/No) <!-- If Yes, please describe the impact and migration path for users --> No. 이전 버전도 기존에 정상적으로 잘 동작하던 모듈입니다. ## References <!-- Please list any other resources or points the reviewer should be aware of --> - [관련 채널톡 스레드](https://desk.channel.io/root/groups/WebBezier-124831/6530b7edbda0b8528c47) - Andarist/react-textarea-autosize#335
1 parent f3945b9 commit 82a1314

File tree

4 files changed

+30
-12
lines changed

4 files changed

+30
-12
lines changed

.changeset/gentle-chefs-arrive.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@channel.io/bezier-react": minor
3+
---
4+
5+
Fix "document is not defined" error when building in SSR frameworks like Next.js.

packages/bezier-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
"@radix-ui/react-visually-hidden": "^1.0.3",
136136
"classnames": "^2.3.2",
137137
"react-resize-detector": "^9.1.0",
138-
"react-textarea-autosize": "^8.5.3",
138+
"react-textarea-autosize": "8.3.4",
139139
"ssr-window": "^4.0.2",
140140
"uuid": "^9.0.0"
141141
}

packages/bezier-react/rollup.config.mjs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,7 @@ const generateConfig = ({
4343
peerDeps: true,
4444
packagePath: './package.json',
4545
}),
46-
nodeResolve({
47-
browser: true,
48-
extensions,
49-
}),
46+
nodeResolve({ extensions }),
5047
/**
5148
* **IMPORTANT**: Order matters!
5249
* When using @rollup/plugin-babel with @rollup/plugin-commonjs in the same Rollup configuration,

yarn.lock

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2073,7 +2073,7 @@ __metadata:
20732073
languageName: node
20742074
linkType: hard
20752075

2076-
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
2076+
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
20772077
version: 7.22.5
20782078
resolution: "@babel/runtime@npm:7.22.5"
20792079
dependencies:
@@ -2082,6 +2082,15 @@ __metadata:
20822082
languageName: node
20832083
linkType: hard
20842084

2085+
"@babel/runtime@npm:^7.10.2":
2086+
version: 7.23.2
2087+
resolution: "@babel/runtime@npm:7.23.2"
2088+
dependencies:
2089+
regenerator-runtime: ^0.14.0
2090+
checksum: 6c4df4839ec75ca10175f636d6362f91df8a3137f86b38f6cd3a4c90668a0fe8e9281d320958f4fbd43b394988958585a17c3aab2a4ea6bf7316b22916a371fb
2091+
languageName: node
2092+
linkType: hard
2093+
20852094
"@babel/template@npm:7.0.0-beta.44":
20862095
version: 7.0.0-beta.44
20872096
resolution: "@babel/template@npm:7.0.0-beta.44"
@@ -2575,7 +2584,7 @@ __metadata:
25752584
react: ^18.2.0
25762585
react-dom: ^18.2.0
25772586
react-resize-detector: ^9.1.0
2578-
react-textarea-autosize: ^8.5.3
2587+
react-textarea-autosize: 8.3.4
25792588
rollup: ^3.29.1
25802589
rollup-plugin-node-externals: ^6.1.1
25812590
rollup-plugin-visualizer: ^5.9.2
@@ -19541,16 +19550,16 @@ __metadata:
1954119550
languageName: node
1954219551
linkType: hard
1954319552

19544-
"react-textarea-autosize@npm:^8.5.3":
19545-
version: 8.5.3
19546-
resolution: "react-textarea-autosize@npm:8.5.3"
19553+
"react-textarea-autosize@npm:8.3.4":
19554+
version: 8.3.4
19555+
resolution: "react-textarea-autosize@npm:8.3.4"
1954719556
dependencies:
19548-
"@babel/runtime": ^7.20.13
19557+
"@babel/runtime": ^7.10.2
1954919558
use-composed-ref: ^1.3.0
1955019559
use-latest: ^1.2.1
1955119560
peerDependencies:
1955219561
react: ^16.8.0 || ^17.0.0 || ^18.0.0
19553-
checksum: b317c3763f37a89621bbafd0e6e2d068e7876790a5ae77f497adfd6ba9334ceea138c8a0b7d907bae0f79c765cb24e8b2ca2b8033b4144c0bce28571a3658921
19562+
checksum: 87360d4392276d4e87511a73be9b0634b8bcce8f4f648cf659334d993f25ad3d4062f468f1e1944fc614123acae4299580aad00b760c6a96cec190e076f847f5
1955419563
languageName: node
1955519564
linkType: hard
1955619565

@@ -19760,6 +19769,13 @@ __metadata:
1976019769
languageName: node
1976119770
linkType: hard
1976219771

19772+
"regenerator-runtime@npm:^0.14.0":
19773+
version: 0.14.0
19774+
resolution: "regenerator-runtime@npm:0.14.0"
19775+
checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
19776+
languageName: node
19777+
linkType: hard
19778+
1976319779
"regenerator-transform@npm:^0.15.2":
1976419780
version: 0.15.2
1976519781
resolution: "regenerator-transform@npm:0.15.2"

0 commit comments

Comments
 (0)