Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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
Node.js 由于节点模块名称带有特殊字符,AWS codedeploy部署失败_Node.js_Node Modules_Aws Code Deploy_Bitbucket Aws Code Deploy - Fatal编程技术网

Node.js 由于节点模块名称带有特殊字符,AWS codedeploy部署失败

Node.js 由于节点模块名称带有特殊字符,AWS codedeploy部署失败,node.js,node-modules,aws-code-deploy,bitbucket-aws-code-deploy,Node.js,Node Modules,Aws Code Deploy,Bitbucket Aws Code Deploy,我们使用带bitbucket的AWS代码deploy在ec2实例上部署应用程序。这是angular项目存储库面临的一个新问题。此repo具有节点模块,因为我们使用的是节点的angular,因此需要这些依赖项。这些依赖项的目录名以特殊字符@开头。我们在堆栈上发现了一个线程,该线程表示具有特殊字符的名称可能会导致失败,并出现类似的错误。 我们收到的错误是 我们无法解决这个问题。当我们删除节点模块目录时,部署工作正常。因此,我们确信问题必须与姓名有关。我们无法更改或删除这些依赖项,因为angular

我们使用带bitbucket的AWS代码deploy在ec2实例上部署应用程序。这是angular项目存储库面临的一个新问题。此repo具有节点模块,因为我们使用的是节点的angular,因此需要这些依赖项。这些依赖项的目录名以特殊字符
@
开头。我们在堆栈上发现了一个线程,该线程表示具有特殊字符的名称可能会导致失败,并出现类似的错误。 我们收到的错误是

我们无法解决这个问题。当我们删除节点模块目录时,部署工作正常。因此,我们确信问题必须与姓名有关。我们无法更改或删除这些依赖项,因为angular正在使用这些依赖项。我们相信一定有办法解决这个问题,并因此寻求建议。Appspec.yml文件有助于过滤文件,在这种情况下有帮助吗?
部署的详细信息:
我们使用标准的bitbucket代码部署插件与aws通信。设置要部署的bitbucket存储库分支,并选择部署组以启动部署。


上图中的节点模块与应用程序捆绑在同一分支中。我们使用angular 7 with node,因此需要这些依赖项。现在,如果我们删除node modules目录,部署就可以正常工作。因此,我们得出结论,正是这些特殊特征导致了失败。另一个问题描述了由于特殊字符而导致的类似问题。

在安装之前,请使用AppSpec文件中的“BeforeInstall”钩子尝试自己清理目标目录,如下所示:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/app/myapp
hooks:
  BeforeInstall:
    - location: ./cleanup.sh
而cleanup.sh的内容与此类似:

#!/bin/bash -xe
rm -rf /var/app/myapp/
在上面的步骤中,请确保更新应用程序部署的目标

编辑1: 对回购进行了简单测试:

(递归压缩repo并上传到S3,然后从那里进行测试)

。。。提取期间没有戏剧:

[root@ip-172-31-27-170 codedeploy-agent]# tree /var/app/myapp
/var/app/myapp
├── appspec.yml
├── cleanup.sh
├── node_modules
│   └── @agm
│       └── file.txt
└── README.md

在安装之前,请尝试使用AppSpec文件中的“BeforeInstall”钩子自己清理目标目录,如下所示:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/app/myapp
hooks:
  BeforeInstall:
    - location: ./cleanup.sh
而cleanup.sh的内容与此类似:

#!/bin/bash -xe
rm -rf /var/app/myapp/
在上面的步骤中,请确保更新应用程序部署的目标

编辑1: 对回购进行了简单测试:

(递归压缩repo并上传到S3,然后从那里进行测试)

。。。提取期间没有戏剧:

[root@ip-172-31-27-170 codedeploy-agent]# tree /var/app/myapp
/var/app/myapp
├── appspec.yml
├── cleanup.sh
├── node_modules
│   └── @agm
│       └── file.txt
└── README.md

对于节点模块,建议始终使用您的代码打包,而不是在部署时下载。

对于节点模块,建议始终使用您的代码打包,而不是在部署时下载。

它们使用代码本身,问题发生在文件复制到实例时,命名约定被代码部署拒绝。它们与代码本身有关,问题发生在文件复制到实例时,命名约定被代码部署拒绝。我们确实尝试过这种清理方式,但是它没有解决问题。你能提供简单的复制步骤吗,这看起来很有趣的场景,将尝试调试它。更新了问题,请用编辑1检查更新了我的答案。感谢更新。我相信代码部署代理和命令行实用程序在本质上必须是相同的,所以在我们的案例中技术上不应该失败。我们还没有尝试过使用命令行从s3压缩和部署。但这将是一个很好的测试。目前,我们只是在部署期间更新了脚本并删除了节点模块,并在部署完成后重新添加它们。一个差劲的工作环境,但没有这样的选择。将尝试此操作并向您更新结果。我们确实尝试了此清理方法,但它没有解决问题。您能否提供简单的复制步骤,这看起来很有趣的场景,将尝试调试它。更新了问题,请使用“编辑1”选中“更新了我的答案”。感谢更新。我相信代码部署代理和命令行实用程序在本质上必须是相同的,所以在我们的案例中技术上不应该失败。我们还没有尝试过使用命令行从s3压缩和部署。但这将是一个很好的测试。目前,我们只是在部署期间更新了脚本并删除了节点模块,并在部署完成后重新添加它们。一个差劲的工作环境,但没有这样的选择。将尝试此操作并更新结果。