Node.js React起动机套件报告无法解释的缺失包装
让我先说明一下,就React/JS而言,我是一个普通的初学者,但总体来说还远远不是初学者;我的经验多种多样,其中包括一些使用Angular/JS的工作。因此,这不是我第一次接触Node/JS生态系统 当前的调查是从我在刚刚安装React Starter Kit的目录中安装Material_UI包时收到的一份缺失的同行报告开始的,该报告给出了以下报告Node.js React起动机套件报告无法解释的缺失包装,node.js,reactjs,npm,Node.js,Reactjs,Npm,让我先说明一下,就React/JS而言,我是一个普通的初学者,但总体来说还远远不是初学者;我的经验多种多样,其中包括一些使用Angular/JS的工作。因此,这不是我第一次接触Node/JS生态系统 当前的调查是从我在刚刚安装React Starter Kit的目录中安装Material_UI包时收到的一份缺失的同行报告开始的,该报告给出了以下报告 Installing packages. This might take a couple of minutes. Installing react
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...
> uglifyjs-webpack-plugin@0.4.6 postinstall F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo\node_modules\uglifyjs-webpack-plugin
> node lib/post_install.js
+ react-scripts@1.1.2
+ react@16.3.0
+ react-dom@16.3.0
added 1327 packages in 86.861s
Success! Created material_ui_table_demo at F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo
Inside that directory, you can run several commands: ...
npm install material-ui@next
> jss@9.8.1 postinstall F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo\node_modules\jss
> node -e "console.log('\u001b[35m\u001b[1mLove JSS? You can now support us on open collective:\u001b[22m\u001b[39m\n > \u001b[34mhttps://opencollective.com/jss/donate\u001b[0m')"
Love JSS? You can now support us on open collective:
> https://opencollective.com/jss/donate
npm WARN ajv-keywords@3.1.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ material-ui@1.0.0-beta.40
added 47 packages in 23.878s
安装Material_UI引发了以下报告
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...
> uglifyjs-webpack-plugin@0.4.6 postinstall F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo\node_modules\uglifyjs-webpack-plugin
> node lib/post_install.js
+ react-scripts@1.1.2
+ react@16.3.0
+ react-dom@16.3.0
added 1327 packages in 86.861s
Success! Created material_ui_table_demo at F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo
Inside that directory, you can run several commands: ...
npm install material-ui@next
> jss@9.8.1 postinstall F:\Praesidium\Armatus_Admin_EventRegistration\React\material_ui_table_demo\node_modules\jss
> node -e "console.log('\u001b[35m\u001b[1mLove JSS? You can now support us on open collective:\u001b[22m\u001b[39m\n > \u001b[34mhttps://opencollective.com/jss/donate\u001b[0m')"
Love JSS? You can now support us on open collective:
> https://opencollective.com/jss/donate
npm WARN ajv-keywords@3.1.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ material-ui@1.0.0-beta.40
added 47 packages in 23.878s
在研究了AJV包之后,我决定从初学者工具包生成一个依赖关系树。依赖关系树报告了上述AJV包上的一个对等依赖关系,安装程序未报告该依赖关系
然而,更令人费解的是,npm list报告的据称丢失的软件包列表
是涵盖React启动器套件的npm列表
是在终端控制台上报告的丢失包的列表
由于它会影响依赖关系树,因此您必须知道此安装在Microsoft Windows 10 Professional上,并且安装的NPM和节点版本分别为5.6.0和v8.10.0
对于开发人员必须解决的未解决的依赖项,他们完全沉默。我相信哪个报告,依赖关系树或丢失的软件包是由同一个npm列表单独报告的?第一次
npm安装时不安装软件包的问题已经在这里出现了
再次运行npm install
通常可以解决问题,但在某些情况下(如这样),您必须通过执行以下步骤强制安装软件包版本:
删除节点\u模块
文件夹
删除包锁.json
将确切的依赖项添加到package.json
(在我们的例子中是ajv@^6.0.0
)
执行npm更新(以防万一)
执行npm安装
现在,pm错误!缺少对等部门:ajv@^6.0.0,ajv要求-keywords@3.1.0
不再是一个问题
注意:如何添加依赖项:
...
"dependencies": {
"ajv": "^6.0.0",
...
为什么??这是npm依赖系统的一个缺陷(他们在某个点上添加了一个黑客解决方案,然后将其删除,他们说他们将在某个点上重写整个依赖系统)我刚刚发现了一些其他令人不安的东西;在package-lock.json中,我看到了“ajv”:{“version”:“5.5.2…”Per,这意味着它必须是5.5.2版,句号。这让我对升级AJV软件包犹豫不决。你没有从create react app开始有什么原因吗?@azium,我确实是从create react app开始的?你有什么怀疑吗?虽然我是从一个shell脚本启动它的,但该shell脚本只是提示输入一个应用程序名称,然后运行create-react-app。这让我在升级AJV软件包时犹豫不决,直到我进一步注意到表软件包将版本6.4.0列为一项要求。此外,始终相信您的本地错误报告所说的话。如果有疑问,请将cd放入您的node_modules文件夹中,以确保正确的软件包。您也可以尝试使用Thread
尝试一下。最后,获得任何软件包的@next版本将比上一个主要版本更不稳定