问题描述
我正在尝试在我的 docker 容器客户端"中安装 react-html-parser
:
docker-compose.yml客户/Dockerfile-dev节点模块/来源/组件/种子.jsx
并尝试在此处导入:
Seeds.jsx
import React, { Component } from 'react';导入 ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 }来自'react-html-parser';从 'axios' 导入 axios;
'axios'
和 'react'
都安装好了,但没有安装 'react-html-parser'
.控制台记录我的错误:
index.js:1437 ./src/components/Seeds.jsx找不到模块:无法解析/usr/src/app/src/components"中的react-html-parser"
package.json
{"name": "客户",版本":0.1.0",私人":真的,依赖关系":{"axios": "^0.18.0",反应":^ 16.8.2","react-dom": "^16.8.2","react-router-dom": "^4.3.1",反应脚本":2.1.5","react-html-parser":"^2.0.2", # <---------NEW"spotify-web-api-js": "^0.22.1"},脚本":{开始":反应脚本开始","build": "react-scripts build","test": "反应脚本测试",弹出":反应脚本弹出"},eslintConfig":{扩展":反应应用程序"},浏览器列表":[">0.2%",没死",不是即
Dockerfile-dev
# 基础镜像发件人节点:11.6.0-alpine# 设置工作目录工作目录/usr/src/app# 将 `/usr/src/app/node_modules/.bin` 添加到 $PATH环境路径/usr/src/app/node_modules/.bin:$PATH# 安装和缓存应用程序依赖项复制 package.json/usr/src/app/package.json运行 npm install --silent运行 npm install [email protected] -g --silent# 启动应用CMD ["npm", "开始"]
docker-compose.yml
客户端:建造:上下文:./services/clientdockerfile: Dockerfile-dev卷:- './services/client:/usr/src/app'- '/usr/src/app/node_modules'端口:- 3000:3000环境:- NODE_ENV=开发- REACT_APP_WEB_SERVICE_URL=${REACT_APP_WEB_SERVICE_URL}依赖于取决于:- 网络
我在我的 node_modules
文件夹中找不到模块...
我在这里遗漏了什么?
编辑:没有 --silent 的 npm 安装:
npm WARN 已弃用 [email protected]:太旧了npm WARN 已弃用 [email protected]:core-js@
当你的 docker-compose.yml
文件说:
卷:- '/usr/src/app/node_modules'
您告诉 Docker 您的 node_modules
目录包含需要跨容器运行保持的关键数据.第一次启动容器时,它将从映像中填充,但由于该目录包含关键数据,Docker 永远不会再次更新它,即使您尝试 npm install
其他模块.>
对于近期的解决方法,docker-compose stop 就足够了;码头工人组成 rm;docker-compose up --build
你的容器.删除现有容器(及其匿名卷)很重要.
I am trying to install react-html-parser
in my docker container 'client':
docker-compose.yml
client/
Dockerfile-dev
node_modules/
src/
components/
Seeds.jsx
and try and import it here:
Seeds.jsx
import React, { Component } from 'react';
import ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 }
from 'react-html-parser';
import axios from 'axios';
'axios'
and 'react'
are instaled allright, but not 'react-html-parser'
. Console logs me the error:
index.js:1437 ./src/components/Seeds.jsx
Module not found: Can't resolve 'react-html-parser' in '/usr/src/app/src/components'
package.json
{
"name": "client",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.18.0",
"react": "^16.8.2",
"react-dom": "^16.8.2",
"react-router-dom": "^4.3.1",
"react-scripts": "2.1.5",
"react-html-parser":"^2.0.2", # <---------NEW
"spotify-web-api-js": "^0.22.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"devDependencies": {
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.7.1"
}
}
Dockerfile-dev
# base image
FROM node:11.6.0-alpine
# set working directory
WORKDIR /usr/src/app
# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install --silent
RUN npm install [email protected] -g --silent
# start app
CMD ["npm", "start"]
docker-compose.yml
client:
build:
context: ./services/client
dockerfile: Dockerfile-dev
volumes:
- './services/client:/usr/src/app'
- '/usr/src/app/node_modules'
ports:
- 3000:3000
environment:
- NODE_ENV=development
- REACT_APP_WEB_SERVICE_URL=${REACT_APP_WEB_SERVICE_URL}
depends_on:
- web
I can'f find the module inside my node_modules
folder...
what am I missing here?
EDIT: npm install without --silent:
npm WARN deprecated [email protected]: Way too old
npm WARN deprecated [email protected]: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated [email protected]: Please upgrade to kleur@3 or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0> for migration path(s).
npm WARN deprecated [email protected]: I wrote this module a very long time ago; you should use something else.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: use String.prototype.padStart()
> [email protected] postinstall /usr/src/app/node_modules/core-js
> node scripts/postinstall || echo "ignore"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
> [email protected] postinstall /usr/src/app/node_modules/core-js-pure
> node scripts/postinstall || echo "ignore"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
When your docker-compose.yml
file says:
volumes:
- '/usr/src/app/node_modules'
You're telling Docker your node_modules
directory contains critical data that needs to be persisted across container runs. The first time you launch the container it will get populated from the image, but because that directory contains critical data, Docker will never ever update it again, even if you try to npm install
additional modules.
For a near-term workaround, it's enough to docker-compose stop; docker-compose rm; docker-compose up --build
your containers. Deleting the existing container (and its anonymous volume) is important.
这篇关于反应:找不到模块:无法解析“react-html-parser"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!