npm - 尝试为条带安装 netlify-lambda 时,npm 写入访问被拒绝
问题描述
当我尝试在 gatsby 应用程序中安装 netlify-lambda 时会发生这种情况
npm install -g netlify-lambda
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/parser
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/helper-create-class-features-plugin
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/types
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/generator
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/caniuse-lite
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/duplexify/node_modules/readable-stream
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/duplexify
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/webpack
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/netlify-lambda/node_modules/duplexify/node_modules
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path:
npm ERR! '/usr/local/lib/node_modules/netlify-lambda/node_modules/@babel/plugin-proposal-object-rest-spread' }
npm ERR!
试过但不起作用:
sudo chown -R $USER:$GROUP ~/.npm sudo chown -R $USER:$GROUP ~/.config
sudo npm install -g netlify-lambda
重新安装 npm
解决方案
您在 Netlify 构建容器中没有 root 访问权限,因此 sudo 对您没有任何好处。
您也不需要npm install
像这样手动进行任何操作 - 您应该将您的 package.json 发送到您的 repo 的根目录中,并且它应该具有您的包集的规范。Netlify 然后会自动运行npm install
(有关详细信息,请参阅本文),安装您需要的内容,并将其放在您的 $PATH 上,这样您就可以运行作为安装一部分生成的任何二进制文件。
本文介绍了我们持续部署环境的流程: https ://www.netlify.com/blog/2016/10/18/how-our-build-bots-build-sites/
TL;DR 您应该能够有效地将netlify-lambda
package.json 作为依赖项放入,然后在构建期间运行它,而无需进一步安装。
推荐阅读
- c++ - 我试图制作一个要求用户输入问题和答案的程序,但程序没有正确循环
- firebase - 使用 Flutter Firestore Firebase 将值保存为字符串
- mysql - 您如何根据 MIN 日期对值求和?
- javascript - 尝试对 firebase 数据库进行排序不起作用
- angular - Angular 5 使用 @ViewChildren 访问 div 列表
- java - 改造返回对象参数乱序,带有@符号和引号
- java - 如何在流 API 中使用返回范围?
- dapper - MySQL + Dapper 扩展:SQL 语法错误
- pipeline - 无法配置 Spinnaker bitbucket 管道
- c++ - 类对象数组的问题导致崩溃