当前位置: 首页 > 知识库问答 >
问题:

TypeError:(0,_schemaUtils.default)不是函数

程淮晨
2023-03-14

我用create-React-app创建了一个简单的React-app,它在本地主机上运行良好。我现在正在尝试对应用程序进行Dockerify。这是我的包裹。json:

{
  "name": "yeet",
  "version": "0.1.0",
  "engines": {
    "node": "12.x"
  },
  "scripts": {
    "client": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "start": "node server.js",
    "production": "npm run build && npm run start"
  },
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "axios": "^0.21.0",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "express-session": "^1.17.1",
    "mongoose": "^5.10.13",
    "mysql": "^2.18.1",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-scripts": "4.0.0",
    "web-vitals": "^0.2.4"
  },
  "devDependencies": {
    "babel-core": "*",
    "babel-loader": "*",
    "babel-preset-es2015": "*",
    "babel-preset-react": "*",
    "babel-preset-stage-0": "*"
  },
  "babel": {
    "presets": [
      "@babel/env",
      "@babel/react",
      "babel-preset-stage-0"
    ],
    "env": {
      "start": {
        "presets": [
          "@babel/env",
          "@babel/react",
          "babel-preset-stage-0"
        ]
      }
    }
  }
}

这是我的Dockerfile:

# Specify base image
FROM node:12.19.0-alpine3.10

# Specify app location in host
WORKDIR /app

# Copy the dependency list
COPY package.json ./

# Install app dependencies
RUN npm install

# Copy app code to host
COPY . .

# Open specified port
EXPOSE 3000:3000

# Start the app
CMD ["npm", "run", "production"]

我用以下方法构建图像:

docker build --tag yeet .

然后我运行图像作为一个容器:

docker run --publish 3000:3000 yeet

这抛出:

$docker run--发布3000:3000 yeet

yeet@0.1.0生产/应用程序npm运行构建

yeet@0.1.0生成/应用程序响应脚本生成

/app/node_modules/eslint网页包插件/dist/options。js:62(0,_schemaUtils.default)(_options.default,options,{^

TypeError:(0,_schemaUtils.default)不是模块的新ESLintWebpackPlugin(/app/node_modules/eslint webpack plugin/dist/options.js:62:28)的getOptions(/app/node_modules/eslint webpack plugin/dist/index.js:30:44)的函数。在对象处导出(/app/node\u modules/react scripts/config/webpack.config.js:749:7)。模块中的(/app/node_modules/react scripts/scripts/build.js:67:16)_在对象处编译(internal/modules/cjs/loader.js:1015:30)。模块_扩展。。模块处的js(internal/modules/cjs/loader.js:1035:10)。在函数处加载(内部/modules/cjs/loader.js:879:32)。模块_在函数处加载(内部/modules/cjs/loader.js:724:14)。位于internal/main/run_main_模块的executeUserPoint[as runMain](internal/modules/run_main.js:60:12)。js:17:47 npm错误!代码ELIFECYCLE npm ERR!错误1 npm错误!yeet@0.1.0生成:react脚本生成npm错误!退出状态1 npm错误!npm错误!失败yeet@0.1.0构建脚本。npm错误!这可能不是npm的问题。上面可能还有其他日志输出。

npm错误!此运行的完整日志可在以下位置找到:npm ERR
/root/。npm/日志/2020-11-07T12\U 47\U 03\U 927Z-debug。日志npm错误!代码ELIFECYCLE npm ERR!错误1 npm错误!yeet@0.1.0生产:npm运行构建

npm错误!此运行的完整日志可在以下位置找到:npm ERR
/root/。npm/日志/2020-11-07T12\U 47\U 03\U 923Z-debug。日志

有人知道我做错了什么吗?任何指针将是超级有帮助的!


共有3个答案

宰父正真
2023-03-14

对我来说解决问题的是

  1. 降级依赖项“样式化组件”和
邹山
2023-03-14

我也有类似的问题。

尝试用Dockerfile中的纱线替换npm命令-它解决了我的问题。

因此,您的Dockerfile应该如下所示:

# Specify base image
FROM node:12.19.0-alpine3.10

# Specify app location in host
WORKDIR /app

# Copy the dependency list
COPY package.json ./

# Install app dependencies
RUN yarn install

# Copy app code to host
COPY . .

# Open specified port
EXPOSE 3000:3000

# Start the app
CMD ["yarn", "run", "start", "production"]
林弘壮
2023-03-14

我确实有同样的问题。我不确定删除或降级库的其他解决方案,如果它在本地运行。

为了解决这个问题,我跑了

docker container prune
docker image prune

在开始建造之前,确保我的码头是干净的。

如果没有成功,您可以尝试删除纱线。锁包锁。json

如果它能帮助其他人,我的文件是

dockerignore先生

.git
.gitignore
node_modules
build

Dockerfile.dev

FROM node:alpine

WORKDIR /app

COPY package.json /app

RUN yarn install

COPY . .

CMD ["yarn", "start"]

docker-compose.dev.yml

version: "3.8"
services:
  print:
    stdin_open: true
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - ".:/app"
      - "/app/node_modules"

Dockerfile。戳

FROM node:alpine as build

WORKDIR /app

COPY package.json /app

RUN yarn install

COPY . /app

RUN yarn run build

FROM nginx:stable-alpine
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build /usr/share/nginx/html

docker-compose.prod.yml

version: "3.8"
services:
  print:
    stdin_open: true
    build:
      context: .
      dockerfile: Dockerfile.prod
    ports:
      - "80:80"

nginx.conf

server {  
  listen 80;
  server_name frontend;
  location / {
    root /usr/share/nginx/html;
    index index.html;
    try_files $uri /index.html;
  }
}

要跑

docker-compose.exe -f .\docker-compose.yml up --build
 类似资料:
  • 问题内容: 我正在尝试创建一个简单的AJAX请求,该请求从MySQL数据库返回一些数据。这是我的以下功能: …在这里我称之为解析所需的参数: 但是,我的成功回调未运行(因为“成功!”未记录到控制台),并且在控制台中出现错误: 这是什么意思?在成功事件触发$ .ajax内部的匿名函数之前,我已经完成了AJAX请求,但是现在我试图运行一个单独的命名函数(在本例中为回调)。我该怎么办? 问题答案: 这里

  • 我正在创建一个简单的AJAX请求,它从数据库返回一些数据。下面是我的函数: 这就是我称之为它的地方,提供了所需的参数: 但是,回调没有运行,相反,我在控制台中得到一个错误: 为什么?我以前做过AJAX请求,成功事件会触发$.AJAX中的匿名函数,但现在我尝试运行一个单独命名的函数。我该怎么办?

  • 我试图让一个简单的react-redux应用程序工作,但我遇到了一个奇怪的错误,我无法解决。我正在尝试简单地设置我当前用户的名字和处理商店,一个设置函数工作,而另一个不。 setCurrentUserFirstName-工作setCurrentUserHandle-不工作 我将它们作为操作放在useractions.js文件中 在减速器中 我有什么不对的?

  • 我在WordPress插件中有一个简单的jQuery脚本,它使用了如下jQuery包装器: 我从WordPress仪表板中调用这个脚本,并在jQuery框架加载后加载它。 当我检查Firebug中的页面时,我总是收到错误消息: TypeError:$不是函数 $(document).Ready(function(){ 我是否应该将脚本包装在这个函数中: 这个错误我已经犯了好几次了,不知道该怎么处理

  • 当在NodeJS中的 客户端上调用SOAP方法时,我收到以下泛型TypeScript错误。我该怎么修? 示例代码 错误

  • 问题内容: 自从我对JavaScript和React感到陌生以来,我确实在找出正确的语法方面遇到了问题。 这是我的问题: 应该调用该函数,但不会。我收到此错误,无法找出原因。回调可以正常工作。 当我尝试这种语法时,在编译时会立即出现错误。那是因为电子书吗? 问题答案: 当您使用ES6类而不是React.createClass时,它不会自动绑定 this 。 之所以: React.createCla