Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在构建期间在npmrc中提供令牌_Amazon Web Services_Npm_Token_Aws Codeartifact - Fatal编程技术网

Amazon web services 在构建期间在npmrc中提供令牌

Amazon web services 在构建期间在npmrc中提供令牌,amazon-web-services,npm,token,aws-codeartifact,Amazon Web Services,Npm,Token,Aws Codeartifact,我在我的项目中使用AWS Codeartifact作为私有NPM注册中心(当然还有代理),在获得完美的工作流程时遇到了一些问题。现在我有一个.sh脚本,它为我生成AWS的Auth令牌,并生成一个项目本地.npmrc文件。它看起来就像这样: #!/bin/sh export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain xxxxx \ --domain-owner XXXXXX --query

我在我的项目中使用AWS Codeartifact作为私有NPM注册中心(当然还有代理),在获得完美的工作流程时遇到了一些问题。现在我有一个.sh脚本,它为我生成AWS的Auth令牌,并生成一个项目本地.npmrc文件。它看起来就像这样:

#!/bin/sh
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain xxxxx \
 --domain-owner XXXXXX --query authorizationToken --output text --profile XXXXX`
export REPOSITORY_ENDPOINT=`aws codeartifact get-repository-endpoint  --domain xxxxx \
 --repository xxxx --format npm --query repositoryEndpoint --output text --profile xxxx`
cat << EOF > .npmrc
registry=$REPOSITORY_ENDPOINT
${REPOSITORY_ENDPOINT#https:}:always-auth=true
${REPOSITORY_ENDPOINT#https:}:_authToken=\${CODEARTIFACT_AUTH_TOKEN}
EOF
当运行“npm publish”(例如)时,.npmrc创建得很好,但我假设由于npm已经在运行,对npmrc的任何更改都不会被拾取。当我第二次运行“npm publish”时,它当然可以工作


我的问题:是否有任何方法连接到构建过程以应用令牌?我不想对我的用户说“在执行任何NPM命令之前,请先调用scriptover.sh。我也不喜欢“scriptover.sh&&NPM publish”。

您可以创建这样的脚本

publish-package
命令可以根据需要调用

 "scripts": {
    "build": "tsc",
    "prepublish": "./scriptabove.sh",
    "publish-package": "npm run prepublish && npm publish" 
  }
说明:

Use & (single ampersand) for parallel execution.
Use && (double ampersand) for sequential execution.
发布包将首先运行
prepublish
命令,然后在运行npm publish之后运行。此方法是链接需要按顺序运行的npm命令的好方法

关于这方面的更多信息,这里有一个StackOverflow帖子。
您可以创建这样的脚本

publish-package
命令可以根据需要调用

 "scripts": {
    "build": "tsc",
    "prepublish": "./scriptabove.sh",
    "publish-package": "npm run prepublish && npm publish" 
  }
说明:

Use & (single ampersand) for parallel execution.
Use && (double ampersand) for sequential execution.
发布包将首先运行
prepublish
命令,然后在运行npm publish之后运行。此方法是链接需要按顺序运行的npm命令的好方法

关于这方面的更多信息,这里有一个StackOverflow帖子。