小编Nik*_*vic的帖子

如何使用Angular CLI生成源地图并将其上传到Sentry?

设置源地图的方法有两种:将其托管在站点上并在捆绑的文件中引用,或者将其直接上传到哨兵之类的服务中。我正在尝试完成后者。问题在于,如果没有将文件路径写入捆绑文件,似乎就无法使用angular cli生成源地图。

我的第一个想法是拥有两个版本-一个带有源映射生成,另一个不带。然后,我只部署没有源映射的构建,并将包含它们的构建上载到哨兵。那是行不通的,因为包的文件名是不同的(角度cli使用文件哈希作为缓存清除的文件名,当您生成源地图时,它将路径添加到.map文件作为注释的末尾,从而导致哈希和文档名称)。

我的另一个选择是使用源地图进行构建,将其上传到哨兵,然后在部署站点之前删除地图文件。那里的问题是捆绑文件仍然包含对现在不存在的映射文件的引用。这本身不应该是一个问题,但是它可能会引起扩展程序或浏览器的问题,并且似乎是一个棘手的解决方案。

您将如何在构建过程中实施类似的操作?

continuous-integration sentry source-maps angular

13
推荐指数
1
解决办法
846
查看次数

尝试从目录外部导入时出现 ModuleNotFoundError

我正在开发 Flask 应用程序并尝试运行我的测试文件,但无法这样做。我当前的应用程序结构是:

\n\n
Project\n\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 forms.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 model.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 static\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 css\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fonts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 img\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 uploads\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client-base.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client-inventory.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client-login.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client-macros.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client-main.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 client-signup.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 user\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 user-base.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 user-macros.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 user-main.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 views\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 client.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 user.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 …
Run Code Online (Sandbox Code Playgroud)

python relative-path python-import flask python-3.x

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

通过Virtualenv使用Supervisor激活Flask应用程序中的Gunicorn

我正在尝试使用(1)nginx(2)gunicorn,(3)git和(4)Supervisor将Flask应用程序部署到ec2实例。我已经设置了nginx,git,gunicorn,但是在编写主管脚本时遇到了麻烦。

我无法让主管在virtualenv的上下文中启动gunicorn。

当我gunicorn run:app在virtualenv之外运行时,它将返回

ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud)

当我在virtualenv中运行相同的命令时,它工作正常。

当我在virtualenv外部运行相同的命令但在虚拟env中指定gunicorn时(即/var/www/sitename/env/bin/gunicorn run:app),它又可以正常工作了。

这是我无法解决的问题,但是我认为,如果我可以让主管在virtualenv内运行gunicorn,那将不是问题,但我也无法做到。

我试过在主管脚本中添加两个程序,一个用于启动虚拟环境,另一个用于gunicorn,使用引号(一个类似的SO答案建议)将这两个命令加在一起,&&用于结合激活virtualenv和启动gunicorn,声明一个environment=PATH=变量,以及许多其他选项;我就是无法正常工作。

我不知道我做错了什么或尝试其他什么。有人知道我现在能做什么吗?

我正在运行python3-我读到主管仅限于v2,但其他人在回答中提到它只是任务管理器,没关系。

nginx flask python-3.x supervisord gunicorn

3
推荐指数
1
解决办法
1551
查看次数

为什么没有 RxJS 运算符来从流中删除特定项目?

我在尝试从可观察流中删除属性时遇到了难以置信的困难。我有一个可观察的对象,它在 url ( Angular ActivatedRoute.queryParams) 中发出查询参数对象。我试图从发出的值中删除键和值并调用,distinctUntilChanged()以便它们的更改不会触发我的观察者。

允许pluck()您仅允许流中的一个参数通过,filter()允许您过滤整个流,skip()运算符允许您跳过整个流排放,throttle()以限制排放量。尽管做相反的事情pluck()- 您希望允许流中除一个值之外的所有值通过 - 并不存在。最接近完成它的是一个map(),它创建一个新对象,删除属性,然后返回该新对象,但这充其量是有问题的,而且通常不起作用。

除了我试图忽略的属性之外,我已采取为所有查询参数属性创建单独订阅的方法。我想必须有一个更好的方法来解决这个问题,是否有一些我缺少或解决的神奇操作符?当类似的东西存在时,为什么反应式库中缺少如此明显的运算符pluck()

编辑:

代码:

this.activatedRoute.queryParams
  .map((value) => {
    const newObj = Object.assign({}, value);
    delete newObj['page'];
    return newObj;
  })
  .distinctUntilChanged()
  .skip(1)
  .subscribe(
    (value) => console.log(value)
  );
Run Code Online (Sandbox Code Playgroud)

rxjs reactive angular

3
推荐指数
1
解决办法
2334
查看次数

有没有方法可以在没有分配的情况下取消订阅BehaviorSubject?

有时间我想订阅一个observable只有一个emit触发附加事件.例如,订阅路由中的查询参数,以便从emit触发另一个事件 - 其中发出的值实际上并不重要.或者,例如,如果我有一个BehaviorSubject并且需要根据对该主题的更改重新加载某些组件.在这些情况下,observable不应由模板使用,并且它们发出的值在很大程度上被忽略.

理想情况下,我会写一些类似于:

ngOnInit() {
    this.service.behaviorSubject.subscribe(
        () => callLocalMethod()
    )
}
Run Code Online (Sandbox Code Playgroud)

问题是,一旦组件被销毁,angular就不会取消订阅该订阅,这意味着每次组件被初始化和销毁​​时,除了旧订阅之外,还会创建一个新订阅,并从每个订阅中调用这些订阅.冗余订阅.由于订阅未分配给属性,因此无法取消订阅OnDestroy生命周期钩子(因为我可以告诉) - 但是对于此用例,将其分配给属性似乎是不必要的.

所以我最终要做的是为每个订阅创建一个属性,即使该属性永远不会被使用,将它分配给订阅,然后unsubscribe()在组件被销毁时调用它.

这似乎是多余的 - 有更好的方法吗?使用异步管道处理订阅不是一种选择,并且使用EventEmitter也不是一种选择,因为通常希望它的行为类似于热的可观察性.

rxjs behaviorsubject rxjs5 reactive angular

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