- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Angular2 Angular-CLI 应用程序,它正在使用通过 NPM(node_modules 文件夹)安装的自定义库。我的 Angular2 应用程序可以在设计时定位自定义库组件。但是,当通过 ng serve 提供应用程序时,应用程序在运行时出错,对于通过 NPM 安装的自定义库中存在的 HTML 和 CSS 文件,出现 404 错误:
http://localhost:4200/cdf-media-slider.component.html 404(未找到)
cdf-video.component 是一个自定义的 Angular2 库,我正试图在我的应用程序中使用它。如何让我的应用程序从 node_modules 中的库提供组件和相应的 HTML、CSS 文件?
这是我关于 Angular-CLI 的详细信息:
Angular -cli:1.0.0-beta.18
节点:6.6.0
操作系统:win32 x64
自定义组件加载 HTML 文件的方式如下:
import { ... } from '@angular/core';
@Component({
selector: 'cdf-media-slider',
templateUrl: './cdf-media-slider.component.html',
styleUrls: [ './cdf-media-slider.component.less' ]
})
export class CdfMediaGridComponent implements OnInit, AfterViewInit
{
//IMPLEMENTATION CODE HERE...
...
}
cdf-media-slider.component.html 和 cdf-media-slider.component.less 与该组件位于同一文件夹中。这段代码最终驻留在 node_modules 中。我使用桶形方法来显示代码,其中每个文件夹都有一个导出其内容的 index.ts 文件。每个父文件夹都有一个 index.ts 导出它的子索引等。
在使用此自定义组件的客户端应用程序中,我正在导入组件,如下所示:
import { CdfMediaGridComponent } from 'ng2cdf/index';
VisualStudio Code 可以找到这个文件,因为我有智能感知,它不会提示它丢失了。然而,在运行时,未找到 HTML 和 CSS 文件 (404),应用程序正在应用程序的根目录中查找它们 (http://localhost:4200/cdf-media-slider.component.html)。
如何获得 HTML 和 CSS 文件的适当路径?
感谢您的帮助。
最佳答案
WebPack 足够聪明,可以抓取这些文件,只要它们被正确包含。如果您可以提供指向 npm 包的链接,那将更容易分辨,但您可能只需要添加一个模块导入。
如果库没有模块,您可以为其创建一个模块,或者简单地将组件/指令添加到主模块。
在您的 app.module.ts @NgModule
声明中,将 CdfMediaGridComponent
和该库中的任何其他指令/组件添加到 declarations
和 exports
属性。或者,最好为这个自定义库创建一个完全独立的模块,然后将该模块添加到 app.module 的 imports
属性中。示例:
cdf-media.module.ts
@NgModule({
declarations: [
CdfMediaGridComponent,
CdfSliderDirective,
EtcDirective,
...
],
providers: [],
imports: [],
exports: [
CdfMediaGridComponent,
CdfSliderDirective,
EtcDirective,
...
]
})
export class CdfMediaModule {
}
app.modules.ts
@NgModule({
declarations: [
MyAppComponent
...
],
providers: [],
imports: [CdfMediaModule],
exports: [
MyAppComponent
...
]
})
export class AppModule {
}
关于angular - Angualr2 AngularCLI App 在 node_modules 库中找不到 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212688/
我更新了我的 angular cli 版本,现在它显示 angular : 5.2.0 我在 angular4 中构建了整个代码。你能帮我降级我的 angularcli 版本(特定版本)以便我有 an
我将 bootstrap 包含到我的 angularcli 项目中,但是当我尝试包含导航栏时,所有元素都无法正常工作。我正在使用网站上的标准 boostrap 导航栏示例,但它看起来很奇怪: 我的项目
我尝试使用 Elasticsearch NPM Module在我的 Angular2 应用程序中。 我使用以下方法在我的服务中导入它: import { Client, SearchResponse
我找不到关于是否使用可用的最新稳定版本升级 TypeScript 版本的任何官方建议。 创建新项目时,AngularCLI 在 package.json 中自动设置 npm 版本。目前是: "type
环境: Angular 2.0.0(通过带有 Webpack 的 Angular CLI Beta 15 构建) 问题: 无法关闭live-reload。我的应用程序涉及多个需要将文件上传到服务器和/
我使用带有 WebPack 的 Angular CLI 构建我的 Angular2 应用程序需要将一些文件复制到 dist 文件夹,以便我可以将应用程序部署到我们的生产 (IIS) 服务器。具体来说,
我想使用 Microsoft.AspNetCore.SpaServices.AngularCli 但得到这样的错误(“Microsoft.AspNetCore.SpaServices”命名空间中不存在
当我尝试创建新的 Angular Cli 项目时: 通过 IDE 执行 ng new angularcli --dir=. 命令几秒钟后收到此消息(在 Run 窗口中): "C:\Program Fi
我正在尝试为 angularcli 设置代理 header .这是我到目前为止在我的 proxy.config.json 中的内容文件: "/api": { "target": "https:
我有一个 Angular2 Angular-CLI 应用程序,它正在使用通过 NPM(node_modules 文件夹)安装的自定义库。我的 Angular2 应用程序可以在设计时定位自定义库组件。但
首先,这是 here 的后续问题: 并且......其次,我只是在终端中收到这些错误。我对 Angular 并不陌生,但对 FireStore 和 Firebase 很陌生:) 我第一次使用 Fire
首先,这是 here 的后续问题: 并且......其次,我只是在终端中收到这些错误。我对 Angular 并不陌生,但对 FireStore 和 Firebase 很陌生:) 我第一次使用 Fire
我决定将我的 Angular5 工作项目升级到 Angular6 并随之升级所有依赖项(例如 rxjs 现在是版本 6 以及 angular-cli) 我遇到了一个似乎无法解决的问题: ERROR i
我是一名优秀的程序员,十分优秀!