我一直在试图让AOT使用我的Webpack应用程序.(@ ngtools /的WebPack)
任何人都可以帮助我吗?
它似乎工作,但compiler.js仍然包含在捆绑包中.此外,它仍然在寻找我所有的.html文件,并在所有组件模板上获得404.
所以据我所知,它并没有真正做到AOT最好的部分?
在这里任何光线都可以闪耀,我被卡住!
谢谢!!
有人可以帮我解决1 vs 2的这种情况吗?
1)角度项目作为AoT在生产中.这需要将我的源代码更改为具有相对于component.ts文件的templateUrl和styleUrls .
2)角度业力为单位测试的JiT.这需要将我的源代码更改为具有绝对的 templateUrl和styleUrls ,否则单元测试将抛出404寻找.html文件.
我想避免在源代码中保持相对AND绝对路径.
我有什么选择?什么是最佳做法?
(我正在使用带有aot和Karma的WEBPACK,而不是angular-cli)
谢谢!!
更新:我们也将探索转换为angular-cli,但这是一个巨大的项目,如果有人知道angular-cli用来解决这个问题的技巧,这对我们来说是一个阻碍.甚至是一个解决方案,所以我们可以让我们的单元测试回来!
我需要知道一个技巧来运行单元测试使用AoT或至少ALONG SIDE AoT(换句话说,使用一组templateUrls运行生产和jit单元测试)
再次感谢!
PS ..这完全没有AoT(使用绝对URL),但切换到AoT(相对于组件文件的url)阻止了我们.
更新2 :(包括我所有的配置文件)如果我必须创建另一个配置文件来运行测试(这是有意义的)但我想知道测试配置需要什么'魔术'才能运行JiT组件,现在我的网址都是相对的.
webpack.config.js
let webpack = require('webpack');
let path = require('path');
let aot = require('@ngtools/webpack');
module.exports = {
entry: {
main: './Angular/main'
},
output: {
path: __dirname,
filename: './dist/smartcommand-[name].min.js',
// Lazy load modules by route & chunk
chunkFilename: './dist/smartcommand-[name].chunk.[hash].min.js'
},
resolve: {
extensions: ['.ts', '.js'],
modules: [
path.resolve('./'),
path.resolve('./node_modules')
],
alias: {
'ng2-charts/charts/charts': 'node_modules/ng2-charts/bundles/ng2-charts.umd.min.js'
//'ng2-dragula': 'node_modules/ng2-dragula/bundles/ng2-dragula.umd.min.js'
}
}, …Run Code Online (Sandbox Code Playgroud) 我在包装 mat-select 的自定义组件上使用 formControlName 时遇到很多问题。
现在看来我的自定义控件找不到表单组?即使自定义元素嵌套在 formGroup 下。
我有一个StackBlitz
但是当我将自定义组件嵌套在 formGroup 下时,问题就出现了,所有其他控件都可以找到 formGroup 但我的自定义组件似乎无法找到。
<form novalidate [formGroup]="tenantForm">
<label for="Id">Id</label>: <input class="form-control" formControlName="id" id="Id" name="Id" />
<custom-component-with-mat-select formControlName="culture" id="Culture" name="Culture"></custom-component-with-mat-select>
</form>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,Id 字段可以正常工作,但是 Culture 字段抱怨没有嵌套在 FormGroup 中?
错误:formControlName 必须与父 formGroup 指令一起使用。您需要添加一个 formGroup 指令并将其传递给现有的 FormGroup 实例(您可以在类中创建一个)。
自定义组件应该如何与响应式表单和表单组一起使用?
我最初的问题是不记得导入 ReactiveFormsModule .. 也许我忘记再次导入某些东西?
这个答案是实现这一目标的设计方法吗?或者我错过了一个更简单的解决方案?
我需要实现一个控制值访问器吗??正如这里所解释的
只是对设计的方式感到困惑。
我的组件包装了 angular material 的 mat-select,如果我需要在 mat-select 上放置属性或让我的组件实现控制值访问器,我想我也很困惑?似乎没有任何效果。
angular-material angular angular-reactive-forms angular-forms
我正在尝试在.net核心api应用程序中复制Visual Studio在F5调试上所做的工作。
似乎“ dotnet run --project”是我正在寻找的窍门,除了一件事:
当我使用F5运行时,它在https上运行,并且是受信任的。当我使用dotnet run运行时,它在https上运行,并且不受信任。
而且我似乎在使用该应用程序时遇到问题,即使它正在运行。
有什么想法吗?我想做与F5一样的技巧来测试我的应用程序,但是dotnet run必须缺少某种证书或其他东西吗?
我真的不想再更改源代码或对证书做任何事情,因为它按F5的设计工作,只需要为dotnet运行做同样的事情即可。
我在捆绑依赖项时遇到问题。
我的库包是 @angular/material 组件的包装器。
我很惊讶地发现在我安装库包的任何地方都要求安装 @angular/material 或者我得到一个错误。
必须有更好的方法来做到这一点吗?我希望我的包是独立的,并且在安装时“包含”角度/材料。
我读到将以下内容添加到库的 package.json
"bundledDependencies": [
"@angular/material"
]
Run Code Online (Sandbox Code Playgroud)
应该解决这个问题,但它似乎没有用,或者至少必须有另一个步骤,因为然后我在安装我的包时看到这个错误:
缺少捆绑的依赖项“@angular/material”。这应该报告给包维护者。
这个错误确实让我听起来好像我只是错过了一些东西,这将按我的预期工作。我错过了什么?
我无法找到有关该错误的任何信息。
我们想强制安装依赖项以保持我们的库“模块化”和自包含。换句话说,我们只想安装我们的库并自动获取它需要的所有依赖项。
我们不想依赖来自 peerDependencies 的警告消息。
似乎这必须是一种可能的模式,任何人都可以解释 bundledDependencies 的观点
我真的很想通过垫选择基本功能,但是要有复选框。如果我打开[multiple],则得到复选框,但同时也得到了多选功能,我需要单选和复选框。
angular ×5
webpack ×2
.net ×1
.net-core ×1
angular-cli ×1
angular2-aot ×1
asp.net-core ×1
c# ×1
css ×1
dotnet-cli ×1
karma-runner ×1
npm ×1