vuejs 应用程序不使用 dockerized npm 运行

Posted

技术标签:

【中文标题】vuejs 应用程序不使用 dockerized npm 运行【英文标题】:vuejs application does not run with dockerized npm 【发布时间】:2017-11-20 02:16:00 【问题描述】:

我正在尝试建立一个可重复的构建环境,它不会与本地机器上的任何东西混淆。为此,我决定使用 docker 来包装 npmvue cli。一切都在我第一次运行 vue quickstart 命令的机器上运行。

但是当我从另一台机器上的存储库中获取新的克隆时,运行设置过程后出现以下错误:

$ ./npm run dev

> my-project@1.0.0 dev /data
> node build/dev-server.js

module.js:472
    throw err;
    ^

Error: Cannot find module '/data/build/dev-server.js'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:427:7)
    at startup (bootstrap_node.js:148:9)
    at bootstrap_node.js:542:3

npm ERR! Linux 4.4.0-57-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "dev"
npm ERR! node v7.7.4
npm ERR! npm  v4.1.2
npm ERR! code ELIFECYCLE
npm ERR! my-project@1.0.0 dev: `node build/dev-server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-project@1.0.0 dev script 'node build/dev-server.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the my-project package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node build/dev-server.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs my-project
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls my-project
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /data/npm-debug.log

它说细节在/data/npm-debug.log,但我也看不到那个文件。所以build 文件夹和npm-debug.log 似乎都不会出现在已安装的卷上。我猜我的 docker 设置不太对劲。但我不知道是什么。

要重现以下错误,请运行以下命令:

注意您需要为第四步安装“fabric”。没有的话看fabfile.py的内容,真的很容易理解,手动运行任务。

NOTE2 如果您没有带有“pyvenv”的python 3,fab develop 任务将在develop 任务的最后一步失败。您可以忽略此 docker/npm 问题,因为不需要 Python 部分。

git clone https://github.com/exhuma/powonline
cd powonline
git checkout ***-2017-06-17
fab develop
cd frontend
./npm run dev

【问题讨论】:

【参考方案1】:

“build”文件夹位于 .gitignore 文件中。不应该。

我错误地将该文件夹视为包含构建工件的文件夹,而它包含构建过程的配置文件。因此它不应该被忽略并且必须是存储库的一部分。我已经将它添加到存储库中,并且该过程已变得可重复而没有问题。

【讨论】:

以上是关于vuejs 应用程序不使用 dockerized npm 运行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 docker 中启动 vuejs s-s-r 服务器

在Dockerfile中使用哪个docker基础映像?

Docker 使用 Gitlab CI 为 Vue JS 构建一致性

在 docker 上服务 Vue js 应用程序

nodejs vuejs java python 入门到高级视频

使用 Yarn 2 (Berry) 在 Docker 镜像中打包应用程序