我正在尝试react-html-parser在我的docker容器’client’中安装:
react-html-parser
docker-compose.yml client/ Dockerfile-dev node_modules/ src/ components/ Seeds.jsx
并尝试在这里导入:
Seeds.jsx
import React, { Component } from 'react'; import ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 } from 'react-html-parser'; import axios from 'axios';
'axios'并且'react'可以安装,但是不是'react-html-parser'。控制台将错误记录给我:
'axios'
'react'
'react-html-parser'
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开发
# 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 react-scripts@2.1.2 -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
我在node_modules文件夹中找不到模块…
node_modules
我在这里想念什么?
编辑 :不带–silent的npm安装:
npm WARN deprecated fsevents@1.2.4: Way too old npm WARN deprecated core-js@2.6.4: 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 joi@11.4.0: 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 circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor. npm WARN deprecated kleur@2.0.2: 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 flatten@1.0.2: I wrote this module a very long time ago; you should use something else. npm WARN deprecated hoek@4.2.1: 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 topo@2.0.2: 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 left-pad@1.3.0: use String.prototype.padStart() > core-js@2.6.9 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 -) > core-js-pure@3.1.3 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 ts-pnp@1.1.2 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
当您的docker-compose.yml文件说:
volumes: - '/usr/src/app/node_modules'
您是在告诉Docker您的node_modules目录包含关键数据,这些关键数据需要在容器运行期间保持不变。首次启动容器时,它将从映像中填充该容器,但是由于该目录包含关键数据,因此即使您尝试npm install添加其他模块,Docker也将永远不会再次对其进行更新。
npm install
对于近期的解决方法,这对于docker-compose stop; docker-compose rm; docker-compose up --build您的容器就足够了。删除现有容器(及其匿名卷)很重要。
docker-compose stop; docker-compose rm; docker-compose up --build