Node.js React起动机套件报告无法解释的缺失包装

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

让我先说明一下,就React/JS而言,我是一个普通的初学者,但总体来说还远远不是初学者;我的经验多种多样,其中包括一些使用Angular/JS的工作。因此,这不是我第一次接触Node/JS生态系统

当前的调查是从我在刚刚安装React Starter Kit的目录中安装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
安装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版本将比上一个主要版本更不稳定