首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker没有找到semantic-ui-react

Docker没有找到semantic-ui-react
EN

Stack Overflow用户
提问于 2020-03-20 18:31:14
回答 1查看 150关注 0票数 3

我是docker的新手,我想在docker内部建立一个react应用程序(带有typescript),我需要使用semantic-ui-react。我按照这里的说明通过app构建:https://mherman.org/blog/dockerizing-a-react-app/

我使用npm i -g semantic-ui-react添加了语义ui,这是我的App.tsx:

代码语言:javascript
复制
import React from 'react';
import './App.css';
import {Button} from "semantic-ui-react";

class App extends React.PureComponent {

    render() {
        return (<div>
            This is text
            <Button>
                ok
            </Button>
        </div>)
    }
}

export default App;

当我打开http://localhost:3001时,我得到这个错误:

代码语言:javascript
复制
./src/App.tsx
Module not found: Can't resolve 'semantic-ui-react' in '/app/src'

我试着使用npm构建docker镜像,然后我改成了yarn,我想它会修复的。到目前为止我已经使用过的构建命令:

docker-compose build --no-cache && docker-compose up -d --force-recreate

docker-compose build --no-cache

docker-compose up -d --force-recreate --build

我的Dockerfile

代码语言:javascript
复制
# base image
FROM node:12.2.0-alpine

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /app/package.json
RUN cat package.json
RUN yarn install

# start app
CMD ["yarn", "start"]

我的docker-compose.yml:

代码语言:javascript
复制
version: '2.2'

volumes:
  frontend:

services:

  frontend:
    container_name: container
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - '.:/app'
      - '/app/node_modules'
    ports:
      - '3001:3000'
    environment:
      - NODE_ENV=development

我使用的是Ubuntu 18.04

在我的Dockerfile文件中,我添加了cat package.json,以查看是否添加了语义ui。

代码语言:javascript
复制
Step 5/7 : RUN cat package.json
 ---> Running in b6bbcda3221b
{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "@types/jest": "^24.0.0",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.0",
    "@types/react-dom": "^16.9.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.0",
    "semantic-ui-react": "^0.88.2",
    "typescript": "~3.7.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

我已经从终端执行了yarn start,没有错误,当我在浏览器中打开它时,项目工作正常。

为什么docker找不到语义ui模块?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 19:10:19

显然这是Docker-compose: node_modules not present in a volume after npm install succeeds的复制品

来自FrederikNS的答案也适用于这里。我删除了

来自docker-compose.yml内的卷的- '/app/node_modules',现在它可以识别所有模块

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60772421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档