首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我使用package.json脚本时,"aws不被识别为内部或外部命令、可操作的程序或批处理文件“。

当我使用package.json脚本时,"aws不被识别为内部或外部命令、可操作的程序或批处理文件“。
EN

Stack Overflow用户
提问于 2022-10-12 08:14:16
回答 1查看 128关注 0票数 0

这是我的package.json脚本的一部分。

代码语言:javascript
复制
"scripts": {
  "deploy": "aws s3 sync ./out s3://[my bucket name] --acl public-read --delete"
}

我使用alias设置.bashrc,如下所示

代码语言:javascript
复制
alias aws="winpty C:/Program\ Files/Amazon/AWSCLIV2/aws.exe"

aws --version工程

代码语言:javascript
复制
$ aws --version
aws-cli/2.8.2 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

s3 sync命令也可以工作(忽略权限问题)。我稍后再解决)。

代码语言:javascript
复制
$ aws s3 sync ./out s3://[my bucket name] --acl public-read --delete
fatal error: An error occurred (InvalidAccessKeyId) when calling the ListObjectsV2 operation: The AWS Access Key Id you provided does not exist in our records.

但当我试着用剧本..。轰隆!发生错误!

代码语言:javascript
复制
$ npm run deploy

> myProject@0.1.0 deploy
> aws s3 sync ./out s3://[my bucket name] --acl public-read --delete

'aws' is not recognized as an internal or external command, operable program or batch file.

我怎样才能克服这个障碍?

EN

回答 1

Stack Overflow用户

发布于 2022-10-13 02:35:26

当你有..。

代码语言:javascript
复制
"scripts": {
  "deploy": "aws some-params"
}

...and你做的..。

代码语言:javascript
复制
npm run deploy

.国家预防机制将如何运作脚本(即aws some-params)依赖于平台。来自医生们

默认情况下,在类似Unix的系统上,它是/bin/sh命令,在Windows上是cmd.exe命令./bin/sh引用的实际shell也取决于系统。您可以使用script-shell配置自定义外壳。

所以当你得到错误时:

'aws' is not recognized as an internal or external command, operable program or batch file.

如果你在谷歌上搜索它,你会注意到它正是cmd.exe抛出的错误的格式。

现在,您可以使用.bashrcaws定义为alias。它很好,但是只有当您的shell是git bash时才能工作,也就是说,cmd.exe将不知道这个alias,因此会抛出一个错误--就像它所做的那样。

修复

现在,你有一些可能性:

您可以编辑windows注册表以将类似于.bashrc的内容添加到cmd.exe (参见如何完成该这里)。

或者,您可以为您的NPM设置script-shell。或者你可以package.json,例如,

代码语言:javascript
复制
"script-shell": "C:\\Program Files\\git\\bin\\bash.exe",
"scripts": {
  "deploy": "aws some-params"
}

或者你可以在全球范围内设置它:

代码语言:javascript
复制
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

当然,所有这些假设您的git在C:\Program Files\git\bin\bash.exe

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74038546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档