node.js - npm install 与 npm ci:node-gyp 重建
问题描述
我正在尝试在node-alpine
docker 映像中构建节点应用程序。执行npm install
成功,但是npm ci
因为缺少python而没有成功。我知道 alpine 不提供 python,并且对于构建节点模块,完整的节点映像可能更适合,但我想了解为什么npm install
没有同样的问题?
我已经通过以下步骤测试了上述观察结果。我启动了一个节点高山映像,当前目录安装到容器中并/bin/sh
用作入口点:
docker run -it -v $PWD:/app --entrypoint=/bin/sh node:10.16.0-alpine
然后我跑了npm install
哪个成功,然后npm ci
哪个失败了。我想补充一点,npm install
如果我先删除文件夹,执行也会成功node_modules
。
install
我假设和之间的区别ci
仅在于正在使用的版本,但似乎ci
也试图运行node-gyp rebuild
由于 alpine 图像中缺少 python 环境而失败,而install
没有尝试运行node-gyp rebuild
因此成功。
据我所知,这种行为没有记录在npm ci
? 我错过了什么?
解决方案
推荐阅读
- flutter - Flutter:在 GestureDetectors 中堆叠两个图像:重新排序问题
- ruby-on-rails - 使用 rails app 数据库中整个表中的虚拟数据的 rspec 测试
- css - Scene Builder 组合框背景颜色(内部)
- jquery - CSS / JS根据高度拉伸表格
- javascript - 无法在 vue 中的函数内部设置属性,在函数外部我可以读取和写入它。不知道为什么?
- c# - ElasticSearch NEST - GroupBy 然后 OrderBy
- android - 如何从互联网访问运行在 Android 设备上的网络服务
- javascript - 如何从嵌套数组中查找数据?
- react-native - 在 react-native 中管理 ScrollView 和 Input-Keyboard
- ffmpeg - 我可以使用 av_write_frame() 代替 av_interleaved_write_frame() 吗?