我有一个Docker容器无法为在构建时克隆到容器中的react.js应用程序执行npm安装。有人知道如何解决这个问题吗?
错误:
sh: 1: react-scripts: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! myrideweb@0.1.0 build: `react-scripts build`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the myrideweb@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-06-19T04_00_09_065Z-debug.log
Dockerfile:
FROM ubuntu
Run apt-get update
Run apt-get install curl -y
Run curl -sL https://deb.nodesource.com/setup_10.x
Run apt-get install -y nodejs
Run apt-get install -y git
Run apt-get install npm -y
Run apt-get update -y
Run git clone https://github.com/sdrafahl/TerraWeb.git
WORKDIR /TerraWeb
Run npm install -g --save npm@latest
...
答案 0 :(得分:1)
我有一个类似的问题,并且我设法通过更改来解决:
"start: "react-scripts start"
收件人:
"start: "./node_modules/.bin/react-scripts start"
在scripts
部分package.json
中。
我使用经典的节点基本映像,但它应该或多或少都一样。
而且我仍在调查为什么NPM在Docker中运行时无法解析react-scripts
,非常欢迎任何进一步的帮助:-)
答案 1 :(得分:0)
当在package.json文件的'devDependencies'下列出'react-scripts'时,这发生在我身上。将其移至“依赖项”部分即可解决此问题。
答案 2 :(得分:0)
在构建容器之前删除 package-lock.json
并使用 npm install
重新安装软件包为我解决了这个问题。
答案 3 :(得分:0)
我在 react-scripts@4.0.1 遇到了这个问题。我卸载并重新安装,这似乎奏效了。
npm uninstall react-scripts
npm install -D react-scripts