当我使用最新的 angular-cli(beta 15 w/webpack)运行 ng test 时,如何提供资产?

Posted

技术标签:

【中文标题】当我使用最新的 angular-cli(beta 15 w/webpack)运行 ng test 时,如何提供资产?【英文标题】:How do I serve assets when I run ng test using latest angular-cli (beta 15 w/webpack)? 【发布时间】:2017-02-26 13:26:04 【问题描述】:

当我尝试运行 ng 测试时,我的所有模块和组件都正确加载,但我包含在 <img> 标记中的任何资产都不会呈现,因为它们没有在 /assets 文件夹中提供(例如他们会在构建或开发过程中使用 ng serve)

除此之外,如果我将 CSS 放入组件中并禁用 ViewEncapsulation。

我正在使用最新的 angular-cli webpack 版本(Beta 15)

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

我找到了答案!

默认情况下,angular-cli (webpack) 中的 karma 设置不会默认为您的 assets 文件夹提供服务,但添加起来非常简单(一旦您筛选文档)

下面是我的结果的屏幕截图和我添加的代码以使其工作

在左边你可以看到我的比利·梅斯的形象正在被送达,在右边如果你看一下 json 的“文件”部分,我添加了以下内容:

 pattern: './src/assets/**', watched: false, included:false, nocache:false, served:true 

我还添加了一个代理属性,用于获取服务内容(默认在http://localhost:[karma端口号服务)/base

proxies: 
   '/assets/': '/base/src/assets/'
,

通过指定/assets/ 作为文件夹代理,karma 使用路径 localhost:[karma port number]/assets 而不是默认值。

我很高兴我能够提出自己的问题,并希望这可以帮助一些从 angular-cli 开始的人!

【讨论】:

我知道它说不要说谢谢,但是,谢谢!我在第一次阅读时错过了上面的“文件”部分,因为它没有像“代理”部分那样标记为代码 - 也许你可以重新格式化? 它可以作为这个错误的解决方案。 github.com/angular/angular-cli/issues/14593 @ProgrammerInProgress,你知道如何通过 http 请求文件吗:http.expectOne('./assets/i18n/2/en.json') 可以吗? 非常古老但非常相关的帖子。确实谢谢你。顺便说一句,当代理部分未设置为 UnhandledRejection: Cannot read property 'range' of undefined 时,业力和 webpack 当前会崩溃。请参阅我的帖子***.com/a/65347089/2416394,它最终会链接到您,因为您的解决方案要好得多:)

以上是关于当我使用最新的 angular-cli(beta 15 w/webpack)运行 ng test 时,如何提供资产?的主要内容,如果未能解决你的问题,请参考以下文章

angular-cli 如何添加 sass 和/或引导程序?

angular-cli中的SCSS加载错误

如何使用 angular-cli 只执行一个测试规范

更新 angular-cli 引发错误

没有资产文件夹将 Angular 2 应用程序与最新的 webpack 捆绑在一起

Angular-cli Auth0 登录配置