問題

DockerでNuxt.jsアプリケーションを実行しようとしています。私はこのようにDockerfileをセットアップしました:

 FROM node:10.15.1 as base
WORKDIR /usr/src/app
COPY package.json ./
ENV HOST 0.0.0.0

FROM base as development
RUN npm install
COPY . .
ENV NODE_ENV development
EXPOSE 3000
CMD [ "npm", "run", "dev" ]
 

そして私のdocker-compose.yml:

 version: "3.7"
services:
  frontend:
    container_name: frontend
    restart: unless-stopped
    build:
      context: .
      target: development
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - "3000:3000"
 

私がdocker-compose upを実行すると、

 frontend    | These dependencies were not found:                    friendly-errors 10:52:33
frontend    |                                                       friendly-errors 10:52:33
frontend    | * core-js/modules/es6.array.find in ./.nuxt/client.js friendly-errors 10:52:33
frontend    | * core-js/modules/es6.array.iterator in ./.nuxt/client.js
frontend    | * core-js/modules/es6.date.to-string in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.function.name in ./.nuxt/client.js
frontend    | * core-js/modules/es6.object.assign in ./.nuxt/client.js
frontend    | * core-js/modules/es6.object.keys in ./.nuxt/utils.js friendly-errors 10:52:33
frontend    | * core-js/modules/es6.promise in ./.nuxt/client.js    friendly-errors 10:52:33
frontend    | * core-js/modules/es6.regexp.constructor in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.regexp.match in ./.nuxt/client.js
frontend    | * core-js/modules/es6.regexp.replace in ./.nuxt/middleware.js
frontend    | * core-js/modules/es6.regexp.search in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.regexp.split in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.regexp.to-string in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.string.includes in ./.nuxt/client.js, ./.nuxt/components/nuxt-link.client.js
frontend    | * core-js/modules/es6.string.iterator in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.string.repeat in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.string.starts-with in ./.nuxt/utils.js
frontend    | * core-js/modules/es6.symbol in ./.nuxt/middleware.js, ./.nuxt/components/nuxt-link.client.js
frontend    | * core-js/modules/es7.array.includes in ./.nuxt/client.js, ./.nuxt/components/nuxt-link.client.js
frontend    | * core-js/modules/es7.promise.finally in ./.nuxt/client.js
frontend    | * core-js/modules/es7.symbol.async-iterator in ./.nuxt/client.js, ./.nuxt/components/nuxt-link.client.js
frontend    | * core-js/modules/web.dom.iterable in ./.nuxt/client.js, ./.nuxt/components/nuxt-link.client.js
frontend    |                                                       friendly-errors 10:52:33
frontend    | To install them, you can run: npm install --save core-js/modules/es6.array.find core-js/modules/es6.array.iterator core-js/modules/es6.date.to-string core-js/modules/es6.function.name core-js/modules/es6.object.assign core-js/modules/es6.object.keys core-js/modules/es6.promise core-js/modules/es6.regexp.constructor core-js/modules/es6.regexp.match core-js/modules/es6.regexp.replace core-js/modules/es6.regexp.search core-js/modules/es6.regexp.split core-js/modules/es6.regexp.to-string core-js/modules/es6.string.includes core-js/modules/es6.string.iterator core-js/modules/es6.string.repeat core-js/modules/es6.string.starts-with core-js/modules/es6.symbol core-js/modules/es7.array.includes core-js/modules/es7.promise.finally core-js/modules/es7.symbol.async-iterator core-js/modules/web.dom.iterable
frontend    | ℹ Waiting for file changes                                            10:52:33
frontend    |
frontend    |  READY  Server listening on http://0.0.0.0:3000                       10:52:33
frontend    |
 

私のプロジェクトはdockerなしで使用するとうまく動作します。また、別のVueプロジェクト(Nuxtではなく)にほぼ同じDockerfileを使用しています。いくつかの研究の後、依存関係に@babel/polyfillを追加するソリューションが見つかりました。しかし、私がそうすると、次の欠落している依存関係について不平を言うので、Nuxtによってインストールされているすべての依存関

docker-compose run shを実行してシェルに入り、次にls -lahを実行してすべてのファイルを一覧表示すると、

 -rw-r--r--   1 root root   32 Feb  1 13:48 .dockerignore
-rw-r--r--   1 root root 1.1K Feb  1 13:23 .eslintrc.js
drwxr-xr-x  10 root root  320 Feb  2 09:17 .git
-rw-r--r--   1 root root 1.2K Feb  1 13:01 .gitignore
drwxr-xr-x  14 root root  448 Feb  2 10:52 .nuxt
-rw-r--r--   1 root root  334 Feb  2 10:51 Dockerfile
-rw-r--r--   1 root root  370 Feb  1 13:01 README.md
drwxr-xr-x   3 root root   96 Feb  1 13:01 assets
drwxr-xr-x   4 root root  128 Feb  1 13:01 components
drwxr-xr-x   4 root root  128 Feb  1 13:01 layouts
drwxr-xr-x   3 root root   96 Feb  1 13:01 middleware
drwxr-xr-x 798 root root  32K Feb  2 10:56 node_modules
-rw-r--r--   1 root root 1.7K Feb  1 13:45 nuxt.config.js
-rw-r--r--   1 root root 363K Feb  1 13:19 package-lock.json
-rw-r--r--   1 root root  612 Feb  2 10:06 package.json
drwxr-xr-x   4 root root  128 Feb  1 13:01 pages
drwxr-xr-x   4 root root  128 Feb  1 13:01 plugins
drwxr-xr-x   3 root root   96 Feb  1 13:01 server
drwxr-xr-x   4 root root  128 Feb  1 13:01 static
drwxr-xr-x   3 root root   96 Feb  1 13:01 store
 

私はnode_modules.nuxtディレクトリが存在するのを見ます。また、core-jsパッケージはnode_modules内に存在します。

何か案が?

  ベストアンサー

私は同じ問題を抱えていました。私はそれを解決しました

npm i [email protected]

古いcore-jsバージョンを使用しているnuxt依存関係があり、このエラーが発生すると思います。

私はこれを私のpackage-lock.jsonで見つけました

     "@nuxt/babel-preset-app": {
      "version": "2.5.1",
      "resolved": "https://registry.npmjs.org/@nuxt/babel-preset-app/-/babel-preset-app-2.5.1.tgz",
      "requires": {
        "@babel/core": "^7.4.0",
        "@babel/plugin-proposal-class-properties": "^7.4.0",
        "@babel/plugin-proposal-decorators": "^7.4.0",
        "@babel/plugin-syntax-dynamic-import": "^7.2.0",
        "@babel/plugin-transform-runtime": "^7.4.0",
        "@babel/preset-env": "^7.4.2",
        "@babel/runtime": "^7.4.2",
        "@vue/babel-preset-jsx": "^1.0.0-beta.2",
        "core-js": "^2.6.5"
      },
      "dependencies": {
        "core-js": {
          "version": "2.6.5",
          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
        }
      }
    },
 

  同じタグがついた質問を見る

node.jsdockerdocker-composenuxt.js