尝试着玩弄reactjs
,而我的熟悉程度却非常有限npm
。
我跑:
npx create-react-app my-app
Installing template dependencies using npm...
npm WARN react-scripts@3.4.1 requires a peer of typescript@^3.2.1 but none is installed.
You must install peer dependencies yourself.
npm WARN sass-loader@8.0.2 requires a peer of node-sass@^4.0.0 but none is installed.
You must install peer dependencies yourself.
npm WARN sass-loader@8.0.2 requires a peer of sass@^1.3.0 but none is installed.
You must install peer dependencies yourself.
npm WARN sass-loader@8.0.2 requires a peer of fibers@>= 3.1.0 but none is installed.
You must install peer dependencies yourself.
npm WARN tsutils@3.17.1 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed.
You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.12 (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.12 (node_modules\watchpack\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.12 (node_modules\jest-haste-map\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.12: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
> added 1606 packages from 750 contributors and audited 931160 packages
> in 165.13s
Run Code Online (Sandbox Code Playgroud)
reactjs
是一个非常流行的框架。全新安装后开箱即用时
丢失是否正常?dependencies
我在某个地方看到我可以手动添加npm install --save-dev xxxxx
.
这是我运行以下命令时返回的内容:
npm ls
npm ERR! peer dep missing: typescript@^3.2.1, required by react-scripts@3.4.1
npm ERR! peer dep missing: node-sass@^4.0.0, required by sass-loader@8.0.2
npm ERR! peer dep missing: sass@^1.3.0, required by sass-loader@8.0.2
npm ERR! peer dep missing: fibers@>= 3.1.0, required by sass-loader@8.0.2
npm ERR! peer dep missing: typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev |
| >= 3.7.0-beta, required by tsutils@3.17.1
npm ERR! peer dep missing: typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev |
| >= 3.7.0-beta, required by tsutils@3.17.1
npm ERR! missing: mkdirp@0.5.3, required by node-pre-gyp@0.14.0
npm ERR! missing: minimist@1.2.5, required by mkdirp@0.5.3
npm ERR! missing: npm-normalize-package-bin@1.0.1, required by npm-packlist@1.4.8
npm ERR! missing: npm-normalize-package-bin@1.0.1, required by npm-bundled@1.1.1
npm ERR! missing: safe-buffer@5.1.2, required by readable-stream@2.3.7
npm ERR! missing: safe-buffer@5.1.2, required by string_decoder@1.1.1
npm ERR! missing: strip-ansi@3.0.1, required by gauge@2.7.4
npm ERR! missing: strip-ansi@3.0.1, required by string-width@1.0.2
npm ERR! missing: ansi-regex@2.1.1, required by strip-ansi@3.0.1
npm ERR! missing: minimist@1.2.5, required by rc@1.2.8
npm ERR! missing: wrappy@1.0.2, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by once@1.4.0
npm ERR! missing: minipass@2.9.0, required by tar@4.4.13
npm ERR! missing: mkdirp@0.5.3, required by tar@4.4.13
npm ERR! missing: safe-buffer@5.1.2, required by tar@4.4.13
npm ERR! missing: yallist@3.1.1, required by tar@4.4.13
npm ERR! missing: minipass@2.9.0, required by fs-minipass@1.2.7
npm ERR! missing: safe-buffer@5.1.2, required by minipass@2.9.0
npm ERR! missing: yallist@3.1.1, required by minipass@2.9.0
npm ERR! missing: minipass@2.9.0, required by minizlib@1.3.3
npm ERR! missing: mkdirp@0.5.3, required by node-pre-gyp@0.14.0
npm ERR! missing: minimist@1.2.5, required by mkdirp@0.5.3
npm ERR! missing: console-control-strings@1.1.0, required by npmlog@4.1.2
npm ERR! missing: inherits@2.0.4, required by readable-stream@2.3.7
npm ERR! missing: safe-buffer@5.1.2, required by readable-stream@2.3.7
npm ERR! missing: safe-buffer@5.1.2, required by string_decoder@1.1.1
npm ERR! missing: console-control-strings@1.1.0, required by gauge@2.7.4
npm ERR! missing: string-width@1.0.2, required by gauge@2.7.4
npm ERR! missing: strip-ansi@3.0.1, required by gauge@2.7.4
npm ERR! missing: code-point-at@1.1.0, required by string-width@1.0.2
npm ERR! missing: is-fullwidth-code-point@1.0.0, required by string-width@1.0.2
npm ERR! missing: strip-ansi@3.0.1, required by string-width@1.0.2
npm ERR! missing: number-is-nan@1.0.1, required by is-fullwidth-code-point@1.0.0
npm ERR! missing: ansi-regex@2.1.1, required by strip-ansi@3.0.1
npm ERR! missing: string-width@1.0.2, required by wide-align@1.1.3
npm ERR! missing: minimist@1.2.5, required by rc@1.2.8
npm ERR! missing: inherits@2.0.4, required by glob@7.1.6
npm ERR! missing: once@1.4.0, required by glob@7.1.6
npm ERR! missing: once@1.4.0, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by once@1.4.0
npm ERR! missing: minipass@2.9.0, required by tar@4.4.13
npm ERR! missing: mkdirp@0.5.3, required by tar@4.4.13
npm ERR! missing: safe-buffer@5.1.2, required by tar@4.4.13
npm ERR! missing: yallist@3.1.1, required by tar@4.4.13
npm ERR! missing: minipass@2.9.0, required by fs-minipass@1.2.7
npm ERR! missing: safe-buffer@5.1.2, required by minipass@2.9.0
npm ERR! missing: yallist@3.1.1, required by minipass@2.9.0
npm ERR! missing: minipass@2.9.0, required by minizlib@1.3.3
npm ERR! missing: safe-buffer@5.1.2, required by readable-stream@2.3.7
npm ERR! missing: safe-buffer@5.1.2, required by string_decoder@1.1.1
npm ERR! missing: strip-ansi@3.0.1, required by gauge@2.7.4
npm ERR! missing: strip-ansi@3.0.1, required by string-width@1.0.2
npm ERR! missing: ansi-regex@2.1.1, required by strip-ansi@3.0.1
npm ERR! missing: wrappy@1.0.2, required by inflight@1.0.6
npm ERR! missing: wrappy@1.0.2, required by once@1.4.0
npm ERR! missing: safe-buffer@5.1.2, required by tar@4.4.13
npm ERR! missing: yallist@3.1.1, required by tar@4.4.13
npm ERR! missing: safe-buffer@5.1.2, required by minipass@2.9.0
npm ERR! missing: yallist@3.1.1, required by minipass@2.9.0
Run Code Online (Sandbox Code Playgroud)
那么,我是否缺少在反应设置/安装结束时显示的大约 5 个左右,或者我是否缺少npm ls
指示的 ~30-50 个左右?
如果我的npm start
项目,它似乎运行得很好。
我还需要所有这些缺失吗dependencies
?
您到底如何才能跟踪需要什么和不需要什么?
您如何知道何时遇到因缺少某些内容而导致的问题?
我尝试安装其中一些dependencies
,
但它们只是依赖于dependencies
缺少的更多内容。
这似乎是一场永无休止的追逐尾巴的游戏。
我如何才能相信一切都井然有序?
如果我只是说搞砸了并继续尝试安装 50 多个模块(及其所有依赖项),它会起作用吗?我感到非常不知所措,我什至还没有写过一段代码。
谢谢!
编辑/更新:
从v10.15.3 -> v12.16.2升级(几年前安装了旧版本来玩 React Native)。删除了我之前的项目文件夹并重新创建了反应项目。所有缺失的依赖项都消失了,除了:
npm WARN tsutils@3.17.1 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta |
| >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must install peer dependencies yourself.
Run Code Online (Sandbox Code Playgroud)
运行“npm ls”也只显示打字稿作为唯一缺少的东西。所以,我很高兴看到这与反应安装过程报告的内容相匹配。
这给我留下了以下问题。
1) Node/NPM 是否安装了“默认”包?我不明白当我自己没有安装任何额外的东西时,拥有旧版本的 Node 会如何突然使以前丢失的所有模块可用?特别是当它们都是第三方时,这就是 npm 的全部意义(能够管理第三方包/模块)。我怎样才能防止这种情况再次发生(当新版本出现时我是否总是必须立即更新节点?)
2)我尝试将打字稿安装为:
npm install -g typescript --save-dev
npm install typescript --save-dev
Run Code Online (Sandbox Code Playgroud)
但两人都没有收到离开的警告
我必须做:
npm install typescript
Run Code Online (Sandbox Code Playgroud)
最终得到了消失的警告。但这直接在我的 package.json 中将打字稿添加到了我的依赖项中。这是否意味着打字稿库将包含在我的最终项目中,并导出并上传到我的网站?显然我不希望那里有额外的文件(仅打字稿就大约 50MB)。
谢谢!
Reactjs是一个非常流行的框架。
dependencies
全新安装后开箱即用时丢失是否正常?
是的,这绝对正常。
这甚至不应该阻碍你学习的进步react
。
实际上,这种依赖关系场景更成问题npm
,因为从 npm v3.0 开始,对等依赖项不会自动安装在 npm install 上。
我可以手动添加缺少的内容
npm install --save-dev xxxxx
。
是的,但这将是一场持续的战斗。
有相当多的软件包是为了完整而开发的install peer dependencies
,如果您必须安装这些软件包,请更好地考虑使用它们peer dependencies
。
如果我运行
npm start
该项目运行得很好。
我还需要所有这些缺失吗dependencies
?
您到底如何才能跟踪需要什么和不需要什么?
您如何知道何时遇到因缺少某些内容而导致的问题?
不,您并不完全需要它们,这就是项目运行良好的原因。
事实上,让我给你一些关于这个reactjs
场景的见解。
为了让您重温npm 依赖的痛苦,这就是 React 团队进行创新的原因,
这create-react-app
使得开始react
开发变得非常容易和快速。
因此,当您运行npx create-react-app my-app
启动一个react
项目时,
它在后台依赖于一个名为“react-scripts”的主要包。
事实上,请注意,当您运行时npm start
,它会调用react-scripts start
.
其中许多是的peer dependencies
要求。如果你检查你会看到这个dependencies
react-scripts
./node_modules/react-scripts/package.json
我尝试安装一些依赖项,
但它们只是依赖于更多缺少的依赖项。
这似乎是一场永无休止的追逐尾巴的游戏。
我如何才能相信一切都井然有序?
如果我只是说搞砸了并继续尝试安装 50 多个模块(及其所有依赖项),它会起作用吗?
别去那里!这就是 React 推荐使用 的原因create-react-app
,
它将安装必须具备的依赖项。
一旦你的项目认为某个包是必须的,npm start
就会失败。
此时,您可以运行npm i --save @package
或npm --save-dev @package
注意:
替换@package
为您的项目所需的包。
请注意“i”,它是“install”的缩写
归档时间: |
|
查看次数: |
10244 次 |
最近记录: |