小编Ozz*_*123的帖子

使用 lerna 将自定义参数发送到 npm (yarn) 脚本

npm我在尝试使用 向脚本传递参数时遇到问题lerna

我有一个节点脚本,我想在工作区的每个包中运行它。lerna文档建议如下:

{
    "scripts": {
      "my-script": "lerna exec -- node \\$LERNA_ROOT_PATH/scripts/my-script.js"
    }
}
Run Code Online (Sandbox Code Playgroud)

所以现在,如果我在根目录中运行,yarn run my-script它将在工作区中的每个包中运行脚本。

有时,我需要将执行范围限制到特定的包。因此,从命令行运行它显然是有效的:lerna exec --scope somepackage -- node \$LERNA_ROOT_PATH/scripts/create-common-scripts.js

我的问题:如何将 npm 脚本与lerna范围参数连接起来。这不起作用:yarn run my-script --scope somepackage,因为它将参数设置为命令的末尾:lerna exec -- node \\$LERNA_ROOT_PATH/scripts/my-script.js --scope somepackage

谢谢!

npm lerna npm-scripts yarnpkg

4
推荐指数
1
解决办法
2508
查看次数

从AWS lambda @ edge访问原始URL

我正在尝试使用AWS Cloudfront上的lambda @ edge对多个网站实施“代理”。

我的设置大致是:

DNS:*。domain.com-> some_uuid.cloudfront.net(Cloudfront发行版)

Cloudfront:some_uuid.cloudfront.net-> S3存储桶来源

s3存储桶:网站/(包含多个网站的文件夹)

lambda @ edge函数:定义为起点请求

我的lambda @ edge函数非常简单:

  1. 检查网站资源是否在s3存储桶中。

  2. 如果是,请将请求uri更改为资源s3 url。

  3. 如果不是,则向后端服务器发送请求以渲染资源,将其存储在s3上并返回。

我在获取网站的原始域时遇到问题。例如,如果我尝试访问“ my_website.domain.com”,则在我的lambda函数中,我没有请求中的该域信息。

我认为我可以实现另一个lambda @ edge函数作为查看器请求,以将域作为标头传递,但是如果可以的话,我宁愿避免这种情况。

还有其他解决方案吗?

谢谢

javascript node.js amazon-cloudfront aws-lambda aws-lambda-edge

3
推荐指数
2
解决办法
1233
查看次数