小编Chr*_*own的帖子

在Angular Typescript库中使用MomentJS时出错

我正在使用jvandemo/generator-angular2-library作为启动器构建一个Angular(2+)组件库,它使用Rollup作为模块构建器.我在库中创建的组件使用MomentJS.

包含MomentJS后,我遇到了各种构建问题.

我首先用于import moment from 'moment';将时刻导入组件,但是在构建时会产生以下错误;

[17:26:28] Starting 'ngc'...
Error at /Users/chris/angular-library/.tmp/components/my-library/my-component.component.ts:6:8: Module '"/Users/chris/my-library/node_modules/moment/moment"' has no default export.
Run Code Online (Sandbox Code Playgroud)

我发现这个问题据说可以使用import * as moment from 'moment';我得到的;

'moment' is imported by build/components/my-component.component.js, but could not be resolved – treating it as an external dependency

events.js:182
      throw er; // Unhandled 'error' event
      ^
Error: Cannot call a namespace ('moment')
    at error (/Users/chris/angular-library/node_modules/rollup/dist/rollup.js:185:14)
Run Code Online (Sandbox Code Playgroud)

据我所知,这是唯一的两个选项,我无法工作,我错过了什么?

编辑

我已将此问题添加到库的Github存储库中,其中包含简化复制步骤

momentjs typescript angular

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

Codeception和Symfony - 在测试之前运行Doctrine迁移

我有一个Symfony 4应用程序和Doctrine with Doctrine迁移.我正在介绍用于运行API测试的Codeception,并且需要在测试运行之前运行迁移.由于我使用的是Doctrine2模块,因此我不想包括DB模块,因为测试不需要它,并且需要在两个不同的位置配置测试数据库.

我目前正在使用Symfony模块,我注意到Laravel模块有一个run_database_migrations配置选项.

在测试之前处理在Symfony应用程序中运行Doctrine迁移命令的最佳方法是什么?(bin/console doctrine:migrations:migrate -n是具体的命令).


编辑我已经找到了一个解决方案,虽然它有效,但远非理想.通过使用Codeception Customization,我创建了以下扩展,基本上手动exec执行基础Symfony命令.

class DatabaseMigrationExtension extends Extension
{
    public static $events = [
        Events::SUITE_BEFORE => 'beforeSuite',
    ];

    public function beforeSuite(SuiteEvent $e)
    {
        echo(exec('bin/console doctrine:database:drop --force') . PHP_EOL);
        echo(exec('bin/console doctrine:database:create') . PHP_EOL);
        echo(exec('bin/console doctrine:migrations:migrate -n') . PHP_EOL);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑2这个目标基本上是复制类似于Codeception DB模块的功能,它允许您提供它在测试中自动使用的数据库的SQL转储,而是使用Doctrine迁移来处理数据库.- https://codeception.com/docs/modules/Db#sql-data-dump

php symfony doctrine-orm codeception

8
推荐指数
1
解决办法
1171
查看次数

通过 Composer 安装或更新 symfony/flex 失败

我有一个使用 symfony/flex 的项目,其中我无法运行composer installcomposer update. 我也无法使用 symfony/flex 作为依赖项创建新的作曲家项目,因为失败是相同的。例如;

mkdir foo && cd foo && composer require symfony/flex -vvv
Run Code Online (Sandbox Code Playgroud)

始终有以下输出;

...
Package operations: 1 install, 0 updates, 0 removals
Installs: symfony/flex:v1.2.6
  - Installing symfony/flex (v1.2.6): Reading /Users/me/.composer/cache/files/symfony/flex/17b622276922e6347ea129acd6238ae1c41d96b6.zip from cache
Loading from cache
 Extracting archiveExecuting command (CWD): unzip -qq  '/Users/me/projects/foo/vendor/symfony/flex/2064a553f7cdf064ba8c1b62c7087ec6' -d '/Users/me/projects/foo/vendor/composer/65215880'
Loading plugin Symfony\Flex\Flex
Downloading https://flex.symfony.com/versions.json
Run Code Online (Sandbox Code Playgroud)

下载在下载 versions.json 时挂起几秒钟,然后默默失败。vendor/symfony/flex存在。

这次失败的原因可能是什么?我的同事可以成功运行相同的命令,因此我假设本地作曲家存在问题。我尝试重新安装 Composer 并清除缓存,但没有成功。

编辑:现在在现有项目中运行时composer update -vvv我得到以下输出

...
Downloading https://repo.packagist.org/packages.json
Run Code Online (Sandbox Code Playgroud)

它也挂在哪里,所以看起来 Composer 无法下载某些 JSON …

php symfony composer-php

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

Symfony 4和Nelmio CORS软件包的CORS错误

我一直在试图弄清为什么我刚刚部署到Apache服务器上的Symfony 4 API应用程序遇到了CORS问题,所以无法理解该问题。

config / packages / nelmio_cors.yaml

nelmio_cors:
    defaults:
        origin_regex: true
        allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
        allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
        allow_headers: ['Content-Type', 'Authorization']
        max_age: 3600
    paths:
        '^/': ~
Run Code Online (Sandbox Code Playgroud)

.env

...
CORS_ALLOW_ORIGIN=/*/
...
Run Code Online (Sandbox Code Playgroud)

我从localhost前端应用程序对该API 发出的请求的所有响应均不包含Access-Control-Allow-Origin标头,并且出现标准错误;

从起源' http:// localhost:4200 '对' http://my-api.com/foo ' 处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'访问-Control-Allow-Origin'标头出现在请求的资源上。

没有特殊的报头被发送,现在我已经将允许的源正则表​​达式设置为“ all”,所以我无法弄清楚导致此问题的原因。我什至在缓存中进行了检查,以确保已正确地从env变量中提取了原点。如果需要其他上下文/文件内容来协助您,请告诉我!

cors symfony

5
推荐指数
1
解决办法
1597
查看次数

API 平台 - 如何记录身份验证路由

我在 Symfony 4 Flex 应用程序中使用 API 平台 v2.2.5,包括一个带有JWT 身份验证的功能 API 、许多资源和可通过路由访问的默认Open API/Swagger 文档页面/api。根据库 docs,每个 API 资源都通过平台配置自动包含在文档中

您如何为自定义操作(例如安全组件的身份验证路由)生成文档?该API平台文档似乎并没有包括这些指令。

symfony swagger openapi api-platform.com

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

从textfile填充多维数组

我有一个包含用户信息的文本文件,以逗号分隔的行格式.我已经使用了实验和研究的组合来尝试将每一行分成单独的信息(通过使用拆分函数),这些信息可以存储在数组中,然后进行搜索.使用代码,我在文本文件中的每个名称和用户名每次重复4次,我不明白.我所做的就是让自己更加困惑,但我只需要从文本文件中拉出每一行,将其分成4个独立的信息片段,然后以某种方式将它们存储在内存中进行搜索.我的代码是;

package assignment;


import java.io.*;

public class readUser {
public void read()
{
    try{

        FileInputStream propertyFile = new FileInputStream("AddUser.txt");

        DataInputStream input = new DataInputStream(propertyFile);
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));

        String line;

        while ((line = reader.readLine()) != null) {

            String[] items = line.split(",");
            String[][] usersArray = new String [5][2];
            int i;
            for (String item : items) {

                for (i = 0; i<items.length; i++){
                    if (i == 0) {
                        System.out.println("Name: " + items[i]);
                    } else if (i == 1) {
                        System.out.println("Username: …
Run Code Online (Sandbox Code Playgroud)

java search text-files multidimensional-array

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

Angular2 [ngClass] - 将直接绑定与条件类相结合

我目前[ngClass]在一个元素上有两个不同的工作实现;

[ngClass]="{ selected: element.isSelected, highlighted: element.isHighlighted}"
Run Code Online (Sandbox Code Playgroud)

[ngClass]="element.customClasses"
Run Code Online (Sandbox Code Playgroud)

是否有可能在模板中结合这两种方法,或者我是否必须在我的组件中创建一个方法,以根据上面的逻辑返回一个类数组?

谢谢!

javascript ng-class angular

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