ccc*_*604 1 node.js docker docker-compose nuxt.js
我正在尝试在 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" ]
Run Code Online (Sandbox Code Playgroud)
还有我的 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"
Run Code Online (Sandbox Code Playgroud)
当我跑步时,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 |
Run Code Online (Sandbox Code Playgroud)
我的项目在没有 docker 的情况下运行良好,而且我对另一个 Vue 项目(不是 Nuxt)使用几乎相同的 Dockerfile。经过一番研究,我找到了一个解决方案来添加@babel/polyfill到我的依赖项中。但是当我这样做时,它会抱怨下一个缺少的依赖项,所以我猜 Nuxt 安装的所有依赖项都丢失了。这也不能解释为什么它在没有 Docker 的情况下运行。
当我运行docker-compose run sh进入 shell 然后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
Run Code Online (Sandbox Code Playgroud)
我看到node_modules和.nuxt目录存在。该core-js包也存在于node_modules.
任何的想法?
我有同样的问题。我解决了
npm i core-js@2.6.5
我认为有一个使用旧的 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",
}
}
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2054 次 |
| 最近记录: |