我正在使用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存储库中,其中包含简化复制步骤
我有一个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
我有一个使用 symfony/flex 的项目,其中我无法运行composer install或composer 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 …
我一直在试图弄清为什么我刚刚部署到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变量中提取了原点。如果需要其他上下文/文件内容来协助您,请告诉我!
我在 Symfony 4 Flex 应用程序中使用 API 平台 v2.2.5,包括一个带有JWT 身份验证的功能 API 、许多资源和可通过路由访问的默认Open API/Swagger 文档页面/api。根据库 docs,每个 API 资源都通过平台配置自动包含在文档中。
您如何为自定义操作(例如安全组件的身份验证路由)生成文档?该API平台文档似乎并没有包括这些指令。
我有一个包含用户信息的文本文件,以逗号分隔的行格式.我已经使用了实验和研究的组合来尝试将每一行分成单独的信息(通过使用拆分函数),这些信息可以存储在数组中,然后进行搜索.使用代码,我在文本文件中的每个名称和用户名每次重复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) 我目前[ngClass]在一个元素上有两个不同的工作实现;
[ngClass]="{ selected: element.isSelected, highlighted: element.isHighlighted}"
Run Code Online (Sandbox Code Playgroud)
和
[ngClass]="element.customClasses"
Run Code Online (Sandbox Code Playgroud)
是否有可能在模板中结合这两种方法,或者我是否必须在我的组件中创建一个方法,以根据上面的逻辑返回一个类数组?
谢谢!
symfony ×4
angular ×2
php ×2
codeception ×1
composer-php ×1
cors ×1
doctrine-orm ×1
java ×1
javascript ×1
momentjs ×1
ng-class ×1
openapi ×1
search ×1
swagger ×1
text-files ×1
typescript ×1