简体   繁体   English

NPM无法在React项目上安装错误

[英]NPM Failed to Install Error on React Project

I am getting started with react so trying to build on different examples. 我正在开始做出反应,因此尝试以不同的示例为基础。 My application was working fine but then I tried to start the server [npm start] and received the below error. 我的应用程序运行正常,但随后尝试启动服务器[npm start]并收到以下错误。 I'm not sure what I have changed though obviously I have broken something. 我不确定我已更改了什么,尽管显然我已损坏了某些内容。 Any guidance on what is causing this? 关于什么原因的任何指导?

在此处输入图片说明

src/index.js SRC / index.js

import * as React from 'react'
import * as ReactDOM from 'react-dom'
import { createHashHistory } from 'history'

import Main from 'main'
import * as serviceWorker from 'serviceWorker'
import configureStore from 'configureStore'

import 'typeface-ibm-plex-sans'
import 'styles'

const history = createHashHistory()

const initialState = window.initialReduxState
const store = configureStore(history, initialState)

ReactDOM.render(<Main store={store} history={history} />, document.getElementById('root'))

serviceWorker.unregister()

src/configureStore.ts SRC / configureStore.ts

import { Store, createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { connectRouter, routerMiddleware } from 'connected-react-router'
import { composeWithDevTools } from 'redux-devtools-extension'
import { History } from 'history'

import { ApplicationState, rootReducer, rootSaga } from 'store'

export default function configureStore(
  history: History,
  initialState: ApplicationState
): Store<ApplicationState> {
  // create the composing function for our middlewares
  const composeEnhancers = composeWithDevTools({})
  // create the redux-saga middleware
  const sagaMiddleware = createSagaMiddleware()

  const store = createStore(
    connectRouter(history)(rootReducer),
    initialState,
    composeEnhancers(applyMiddleware(routerMiddleware(history), sagaMiddleware))
  )

  sagaMiddleware.run(rootSaga)
  return store
}

tsconfig.json tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "./src",
    "outDir": "build/dist",
    "module": "esnext",
    "target": "ES2017",
    "lib":["es2015", "es2016","dom"],
    "sourceMap": true,
    "allowJs": true,
    "jsx": "react",
    "moduleResolution": "node",
    "rootDir": "src",
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "suppressImplicitAnyIndexErrors": true,
    "noUnusedLocals": true,
  }
}

Debug Log 调试日志

0 info it worked if it ends with ok
1 verbose cli [ '/home/n4nite/.nvm/versions/node/v8.11.3/bin/node',
1 verbose cli   '/home/n4nite/.nvm/versions/node/v8.11.3/bin/npm',
1 verbose cli   'install',
1 verbose cli   'configureStore',
1 verbose cli   '--save' ]
2 info using npm@5.6.0
3 info using node@v8.11.3
4 verbose npm-session 0accc0570fa2177a
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 http fetch GET 404 https://registry.npmjs.org/configureStore 1116ms
8 silly fetchPackageMetaData error for configureStore@latest 404 Not Found: configureStore@latest
9 verbose stack Error: 404 Not Found: configureStore@latest
9 verbose stack     at fetch.then.res (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/fetch.js:42:19)
9 verbose stack     at runCallback (timers.js:810:20)
9 verbose stack     at tryOnImmediate (timers.js:768:5)
9 verbose stack     at processImmediate [as _immediateCallback] (timers.js:745:5)
9 verbose stack From previous event:
9 verbose stack     at regFetch (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/fetch.js:36:6)
9 verbose stack     at fetchPackument (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:81:10)
9 verbose stack     at getManifest (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:37:10)
9 verbose stack     at manifest (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:24:10)
9 verbose stack     at Object.manifest (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/index.js:12:12)
9 verbose stack     at Object.Fetcher#manifest [as manifest] (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js:15:38)
9 verbose stack     at manifest (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/lib/fetch.js:16:18)
9 verbose stack     at pinflight (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/manifest.js:24:12)
9 verbose stack     at /home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:29:24
9 verbose stack From previous event:
9 verbose stack     at _inflight (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:28:25)
9 verbose stack     at /home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:22:14
9 verbose stack     at runCallback (timers.js:810:20)
9 verbose stack     at tryOnImmediate (timers.js:768:5)
9 verbose stack     at processImmediate [as _immediateCallback] (timers.js:745:5)
9 verbose stack From previous event:
9 verbose stack     at inflight (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:14:40)
9 verbose stack     at Object.manifest (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/pacote/manifest.js:22:10)
9 verbose stack     at fetchPackageMetadata (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/lib/fetch-package-metadata.js:58:10)
9 verbose stack     at limited (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/call-limit/call-limit.js:29:10)
9 verbose stack     at fs.stat (/home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/lib/install/deps.js:219:20)9 verbose stack     at /home/n4nite/.nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:284:29
9 verbose stack     at FSReqWrap.oncomplete (fs.js:152:21)
10 verbose cwd /mnt/c/Users/micha/github/infornite-web-ui
11 verbose Linux 4.4.0-17134-Microsoft
12 verbose argv "/home/n4nite/.nvm/versions/node/v8.11.3/bin/node" "/home/n4nite/.nvm/versions/node/v8.11.3/bin/npm" "install" "configureStore" "--save"
13 verbose node v8.11.3
14 verbose npm  v5.6.0
15 error code E404
16 error 404 Not Found: configureStore@latest
17 verbose exit [ 1, true ]

package.json 的package.json

{
  "name": "infornite-web-ui",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@types/classnames": "^2.2.6",
    "@types/material-ui": "^0.21.5",
    "@types/prop-types": "^15.5.5",
    "@types/react-router": "^4.0.30",
    "@types/redux-form": "^7.4.5",
    "babel-plugin-emotion": "^9.2.0",
    "class-names": "^1.0.0",
    "classnames": "^2.2.6",
    "connected-react-router": "^4.3.0",
    "create-react-app-parcel-typescript": "0.0.5",
    "dotenv-expand": "^4.2.0",
    "emotion": "^9.2.3",
    "emotion-theming": "^9.2.3",
    "history": "^4.7.2",
    "http2": "^3.3.7",
    "main": "^1.0.1",
    "material-ui": "^0.20.2",
    "moment": "^2.22.2",
    "polished": "^1.9.3",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "react-emotion": "^9.2.3",
    "react-redux": "^5.0.7",
    "react-router-dom": "^4.3.1",
    "react-router-redux": "^5.0.0-alpha.9",
    "redux": "^4.0.0",
    "redux-devtools-extension": "^2.13.2",
    "redux-form": "^7.4.2",
    "redux-form-material-ui": "^4.3.4",
    "redux-saga": "^0.16.0",
    "routes": "^2.1.0",
    "store": "^2.0.12",
    "styles": "^0.2.1",
    "typeface-ibm-plex-mono": "^0.0.56",
    "typeface-ibm-plex-sans": "^0.0.58",
    "typesafe-actions": "^2.0.4",
    "utils": "^0.3.1"
  },
  "scripts": {
    "start": "react-scripts-parcel start",
    "build": "react-scripts-parcel build",
    "test": "react-scripts-parcel test --env=jsdom",
    "eject": "react-scripts-parcel eject"
  },
  "browserslist": {
    "development": [
      "last 2 chrome versions",
      "last 2 firefox versions",
      "last 2 edge versions"
    ],
    "production": [
      ">1%",
      "Firefox ESR",
      "not ie <= 11",
      "not op_mini all"
    ]
  },
  "devDependencies": {
    "@types/history": "^4.6.2",
    "@types/node": "^10.3.3",
    "@types/react": "^16.3.17",
    "@types/react-dom": "^16.0.6",
    "@types/react-redux": "^6.0.2",
    "@types/react-router-dom": "^4.2.7",
    "@types/react-router-redux": "^5.0.15",
    "tslint": "^5.10.0",
    "tslint-config-blvd": "^1.0.0",
    "typescript": "^2.9.2"
  }
}

fetch GET 404 https://registry.npmjs.org/configureStore 获取GET 404 https://registry.npmjs.org/configureStore

Indeed configureStore is not available on NPM proper : https://www.npmjs.com/package/configureStore gives a "not found" error (compare to eg react https://www.npmjs.com/package/react ) 实际上, configureStore在NPM上不可用: https : //www.npmjs.com/package/configureStore给出了“未找到”错误(例如,比较一下https://www.npmjs.com/package/react

Fix 固定

Either the package.json is wrong (unlikely) OR you are supposed to you registry local to your organization. package.json错误(不太可能),或者您应该在组织本地注册。 Use the --registry flag in npm and ask your team mates. 在npm中使用--registry标志,并询问队友。

In case anyone else comes across this. 万一其他人遇到这个问题。 I was using an option in my tsconfig.json file to set the base url to "./src". 我在tsconfig.json文件中使用一个选项将基本URL设置为“ ./src”。 The intention is that I could use paths relative to the src directory in my import statements rather than full paths so something like 目的是我可以在导入语句中使用相对于src目录的路径,而不是完整路径,因此类似

[import something from '../../../my-module'] [从'../../../my-module'导入一些东西]

would just become 会变成

[import something from 'my-module'] [从“我的模块”中导入一些东西]

This worked fine but all of a sudden I started to receive error messages. 这个工作正常,但是突然我开始收到错误消息。 I assume that I either installed some dependency that didn't support this configuration for relative paths (unlikely) or that I inadvertently made some change that broke this logic without realising I had done it (more likely). 我以为我要么安装了一些不支持相对路径的配置的依赖项(不太可能),要么我无意中做了一些改动,破坏了这个逻辑,却没有意识到自己做了(很可能)。

The fix was to change the base url from "baseUrl": "./src" to "baseUrl": "." 解决方法是将基本URL从“ baseUrl”:“ ./ src”更改为“ baseUrl”:“。” as suggested by @rshepp. 如@rshepp所建议。 When that was done I had to go back and change every import statement that was using relative paths to use full paths. 完成此操作后,我必须返回并更改每个使用相对路径的导入语句以使用完整路径。 That was a pain but it solved the problem. 那很痛苦,但解决了问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM