标签: angular-cli

Angular-cli 错误:找不到模块“@ngtools/json-schema”

我最近在我的项目中运行了 npm update 。完成后,每当我尝试运行 ngserve 时,我都会得到一个

错误:找不到模块“@ngtools/json-schema”

然而,在我的 node_modules 文件中,很明显存在一个 @ngtools 文件。我尝试卸载并重新安装 angular-cli 但仍然收到此错误。

包.json

"dependencies": {
"@angular/animations": "^4.4.6",
"@angular/cdk": "^2.0.0-beta.12",
"@angular/common": "^4.4.6",
"@angular/compiler": "^4.4.6",
"@angular/core": "^4.4.6",
"@angular/forms": "^4.4.6",
"@angular/http": "^4.4.6",
"@angular/material": "^2.0.0-beta.12",
"@angular/platform-browser": "^4.4.6",
"@angular/platform-browser-dynamic": "^4.4.6",
"@angular/router": "^4.4.6",
"auth0-js": "^8.11.3",
"auth0-lock": "^10.24.1",
"bootstrap": "^3.3.7",
"chart.js": "^2.7.1",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"ng2-charts": "^1.6.0",
"rxjs": "^5.5.2",
"zone.js": "^0.8.4"
},

  "devDependencies": {
"@angular/cli": "^1.5.2",
"@angular/compiler-cli": "^4.4.6",
"@types/jasmine": "2.5.38",
"@types/node": "^6.0.92",
"codelyzer": "~2.0.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"karma-cli": "~1.0.1", …
Run Code Online (Sandbox Code Playgroud)

npm angular-cli angular

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

本地主机外部访问

除了本地主机之外,我如何为我的角度项目提供服务?

我尝试使用ng serve --host 0.0.0.0 --port 4200它,没有任何错误。

但是当我输入另一个IP(例如)时ng serve --host 192.168.255.1 --port 4200,我收到以下错误。我选择这个 IP 是因为我想使用 openVPN 在私有 IP 中为我的应用程序提供服务

**

错误
无法绑定主机 192.168.255.6。请提供不同的主机地址或主机名

**

版本

 - npm 5.5.1
 - node 6.10.3
 - angular-cli global 1.7.1 and local 1.0.0
Run Code Online (Sandbox Code Playgroud)

angular-cli angular

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

我们应该在 Angular 应用程序内创建的所有模块中导入 BrowserModule 吗?

我是 Angular 的新手。我得到的解释BrowserModule如下。

导出所有 Angular 应用程序所需的基础设施。默认情况下包含在使用 CLI new 命令创建的所有 Angular 应用程序中。重新导出 CommonModule 和 ApplicationModule,使其导出和提供程序可供所有应用程序使用。

当我使用 angular-cli 时,我发现它BrowserModule默认被导入到应用程序模块中。

我的疑问是,我们是否应该导入BrowserModuleAngular 应用程序中创建的所有模块?

html routes typescript angular-cli angular

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

如何对 Angular 应用程序子模块的所有组件执行 ng 测试

我有我的角度应用程序,声明如下:

应用程序模块.ts

export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

我可以用它来运行测试ng test MyApp

在这个应用程序中,我有多个模块,声明如下:

my-one.module.ts / my-other.module.ts

export class MyOneModule {}

export class MyOtherModule {}
Run Code Online (Sandbox Code Playgroud)

这些是在 AppModule 中导入的。

我怎样才能做类似ng test MyOneModule/的事情ng test MyOtherModule,我想用它只运行该“子模块”中所有组件的测试,而不是应用程序中的所有测试?

我在官方文档或 StackOverflow 中找不到信息。有可能吗?

karma-runner angular-cli angular

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

nrwl-Nx 和 Cypress,验证超时并在 Windows 7 中失败 --smoke-test

我正在尝试按照NX 网站上的本教程进行操作。第二部分让我们使用 Cypress 设置 e2e 测试。我遵循了所说的一切,甚至注释掉了我的代码并将他们的代码粘贴到我的文件中。我在控制台中没有收到任何错误。我在 Node 中看到的错误说

Cypress 验证超时

该命令失败并显示以下输出:

C:.....\Cache\3.3.1\Cypress\Cypress.exe --smoke-test --ping=852

该教程还说我们的应用程序上应该弹出一个 UI,但我没有看到任何此类内容。

生成工作区和应用程序后,我们app.po.ts通过添加几个常量来修改文件,到目前为止我的看起来像这样

export const getGreeting = () => cy.get('h1');
export const getTodos = () => cy.get('li.todo');
export const getAddTodoButton = () => cy.get('button#add-todo');
Run Code Online (Sandbox Code Playgroud)

接下来它告诉我们通过添加以下内容来更新app.spec.tse2e 测试的文件

import { getAddTodoButton, getTodos } from '../support/app.po';

describe('TodoApps', () => {
  beforeEach(() => cy.visit('/'));

  it('should display todos', () => {
    getTodos().should(t => expect(t.length).equal(2));
    getAddTodoButton().click();
    getTodos().should(t => expect(t.length).equal(3));
  });
});
Run Code Online (Sandbox Code Playgroud)

生成的该文件的版本Nx已包含在其中

import { …
Run Code Online (Sandbox Code Playgroud)

node.js typescript angular-cli cypress nrwl-nx

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

如何解决 MSBuild 引发错误 MSB3030:无法复制文件“Scripts\dist\main.bundle.js”,因为找不到该文件

Azure Pipeline 项目有两个构建代理

  1. 构建角度项目。

构建成功,资产、chunk.js 文件和bundle.js 文件作为工件发布

  1. 构建 ASP.net Web 应用程序。

我从以前的构建代理下载工件并将它们提取到$(build.stagingDirectory)/Scripts/dist目录中,因为它们将被 ASP.net 项目使用。

我的提取文件任务 ymal 是

steps:
- task: ExtractFiles@1
  displayName: 'Extract files bundle.zip'
  inputs:
    archiveFilePatterns: '$(Pipeline.Workspace)/dist/$(Build.BuildId)_bundle.zip'
    destinationFolder: '$(build.sourcesDirectory)/Scripts/dist' 
Run Code Online (Sandbox Code Playgroud)

MSBuild构建 ASP.net 项目时,它无法找到##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets(182,5): Error MSB3030: Could not copy the file "Scripts\dist\main.bundle.js" because it was not found.

MS Build yaml 是:

steps:
- task: MSBuild@1
  displayName: 'Build solution NMG.Portal.MVCForAngular'
  inputs:
    solution: NMG.WebApp.MVCForAngular/NMG.WebApp.MVCForAngular.csproj
    msbuildArguments: '/p:ProjectFile=$(build.sourcesDirectory)\NMG.WebApp.MVCForAngular\NMG.WebApp.MVCForAngular.csproj /p:DeployOnBuild=true /p:SkipInvalidConfigurations=true /p:OutDir="$(build.stagingDirectory)\\"'
    clean: false
    logProjectEvents: …
Run Code Online (Sandbox Code Playgroud)

msbuild asp.net-mvc msbuild-task angular-cli azure-pipelines

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

如何构建一个大型 Angular 库

我正在创建一个非常大的 Angular 库。因为我有很多类和组件,所以我将它们结构化为层次结构。例如,我有:

  • 地图
    • 面板
      • 工具栏
      • 主面板
      • ETC。
    • 层数
      • 必应层
      • WMS层
      • WMTS层
    • 几何形状
      • 观点
      • 线
      • 多边形等

在 中public_api.ts,我有许多导出,每个component/module/service我想在库上公开的导出都有一个,但这会扁平化我的层次结构。

我发现维护层次结构的唯一方法是为层次结构树上的每个组创建一个库。例如,面板库(Panels-lib)、图层库(Layers-lib)等,然后复制文件系统上的层次结构,将每个库放在单独的文件夹中:面板文件夹、图层文件夹ETC。

这样,在主应用程序中我可以通过这种方式导入组件:

import {ToolBar} from "MyMap/Panels/Panels-lib";
import {Line} from "MyMap/Geometries/Geometries-lib";
Run Code Online (Sandbox Code Playgroud)

有更好的方法来实现这一目标吗?先感谢您。

angular-cli angular ng-packagr

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

Angular cli:ng 命令显示无效字符错误

成功安装后,我尝试查找 Angular cli 的版本,但它显示弹出Window Script Host模型并出现错误。

安装: 在此输入图像描述

我尝试使用后出现 Windows Script Host

ng version
Run Code Online (Sandbox Code Playgroud)

angular-cli

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

无法从Docker容器访问angular2应用

我使用官方节点映像创建了一个Docker容器。

docker pull node
Run Code Online (Sandbox Code Playgroud)

然后我使用angular-cli创建了一个angular 2应用。

ng new docker-demo
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令从我的angular2应用程序的目录中运行我的docker容器:

cd docker-demo
Run Code Online (Sandbox Code Playgroud)

&然后在目录中:

docker run -p 8080:4200 -v $(pwd):/var/www -w "/var/www" node npm start
Run Code Online (Sandbox Code Playgroud)

其中pwd代表我的angular2应用程序的目录。

现在,在控制台中,我可以看到我的angular2应用程序已捆绑并正在运行,就像它在本地计算机上运行一样。

但是当我尝试使用docker-machine的ip从浏览器访问它时:

http://192.168.99.100:8080/
Run Code Online (Sandbox Code Playgroud)

它不起作用。

PS:angular2应用程序在我的本地系统上运行良好。

是否需要任何额外的配置?

有输入吗?

提前致谢。

docker docker-machine angular-cli angular

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

找不到模块'js-base64'

我正在尝试使用"js-base64":"^ 2.1.9"在我使用"angular-cli":"1.0.0-beta.15"创建的angular 2应用程序中,但我无法导入js-base64库.我在"依赖项"部分的package.json中添加了"js-base64":"^ 2.1.9":

package.json    
"dependencies": {
"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/core": "2.0.0",
"@angular/forms": "2.0.0",
"@angular/http": "2.0.0",
"@angular/platform-browser": "2.0.0",
"@angular/platform-browser-dynamic": "2.0.0",
"@angular/router": "3.0.0",
"core-js": "^2.4.1",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23",
"js-base64": "^2.1.9"
},
Run Code Online (Sandbox Code Playgroud)

我将"../node_modules/js-base64/base64.js"添加到angular-cli.json到"scripts"数组中.

angular-cli.json:

....
"scripts": ["../node_modules/js-base64/base64.js"],
....
Run Code Online (Sandbox Code Playgroud)

在我的服务文件中我导入了库:

app.service.ts

import { Base64 } from 'js-base64';
Run Code Online (Sandbox Code Playgroud)

但该申请正在抱怨

/app.service.ts:6:23无法找到模块'js-base64'.

我缺少什么想法?

webpack angular-cli angular

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