我有一個 NodeJS 應用程式,它使用了一些我試圖放入 docker 映像中的模塊。
const Xvfb = require('xvfb')
const fs = require("fs")
const { exec } = require("child_process")
const express = require('express')
const app = express()
const port = 3000
console.log('hello world');
我不確定用戶的路徑,但這是我遵循的步驟:
我的應用程式位于檔案夾中:/mynodejs并且以下所有命令都從此檔案夾中運行:
我用內容創建了檔案 package.json
{ "name": "appname", "version": "1.0.0", "description": "Node.js on Docker", "author": "Some Name", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.16.1" } }創建檔案 Dockerfile
nano Dockerfile
內容:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "app.js" ]
創建檔案:.dockerignore
node_modules構建檔案:
sudo docker build -t myapp .檢查影像是否已創建。它被創建了。
sudo docker images測驗 docker 鏡像
docker run myapp
錯誤 :
internal/modules/cjs/loader.js:905
throw err;
^
Error: Cannot find module 'xvfb'
Require stack:
- /usr/src/app/app.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (/usr/src/app/app.js:11:22)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/src/app/app.js' ]
該錯誤并非特定于此處顯示的模塊“xhr2”。在第一次呼叫require('something') 時引發錯誤
有誰知道如何解決這個問題?
謝謝
uj5u.com熱心網友回復:
您在 package.json 檔案中缺少 xvfb 作為依賴項。添加它,這樣你的 package.json 檔案就變成了
{
"name": "appname",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "Some Name",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.16.1",
"xvfb": "^0.4.0"
}
}
我可以看到 Npm 上有不同版本的 xvfb 包,所以也許你想要 "@cypress/xvfb" 版本 1.2.4。cypress 較舊,但每周的下載量要多得多。我不熟悉xvfb。
如果你的主機上安裝了 npm,你可以使用命令將包添加到 package.json 檔案中
npm install xvfb
或者
npm install @cypress/xvfb
而不是手動編輯 package.json 檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407327.html
標籤:
