Angular CLI创建vendor.js并且我不知道为什么和它有什么用?对于新应用,此文件的大小约为3.2MB!
此文件是否包含Angular 6 Javascript Source?
难道你不认为这是在低速连接上加载互联网的大文件吗?
如果你想帮我检查一下发生了什么,这里是Github的存储库:https://github.com/sandrocsimas/ngx-material-palette-picker
我正在尝试创建我的第一个角度库.我使用angular cli命令生成代码:
ng new ngx-material-palette-picker-app
ng generate library ngx-material-palette-picker
Run Code Online (Sandbox Code Playgroud)
在NgxMaterialPalettePickerComponent我正在导入json文件的组件中,但构建引发了以下错误:
projects/ngx-material-palette-picker/src/lib/ngx-material-palette-picker.component.ts(2,31): error TS2307: Cannot find module './palettes.json'.
Run Code Online (Sandbox Code Playgroud)
这是我的组成部分:
import {Component, OnInit} from '@angular/core';
import * as palettesJSON from './palettes.json';
@Component({
selector: 'ngx-mpp',
template: `,
styles: []
})
export class NgxMaterialPalettePickerComponent implements OnInit {
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个types在根路径中调用的目录,并将以下代码添加到index.d.ts:
declare module '*.json' {
const value: any;
export default value;
}
Run Code Online (Sandbox Code Playgroud)
我还添加了目录types到typeRoots主tsconfig.json.
"typeRoots": [
"node_modules/@types",
"types"
],
Run Code Online (Sandbox Code Playgroud)
该项目在Sublime编辑器中没有显示任何错误,但是当我尝试使用该命令构建项目时,ng build …
我们所有的 Angular 应用程序都在其他应用程序中引导(.jsp加载 javascript 文件并包含<app-root>标签的文件),所以我们不需要index.html**.
但是,当我index从我们的属性中删除angular.json它时,它给了我错误:
数据路径“”应该具有必需的属性“索引”。
如果我将其留空,它确实会构建,但会出现错误:
...
95% 发出 index-html-webpack-pluginEISDIR:对目录的非法操作,读取
错误:EISDIR:对目录的非法操作,读取
我如何在ng build没有 的情况下执行index.html?
** 我们的部署过程现在实际上将 复制index.html到我们的 CDN 中,这是不需要的,因为我们根本不想将这些文件提供给最终用户,index.html仅用于开发人员在ng serve
从我的库中执行'ng build'时出现以下错误.
我目前正在使用Angular 6,但我相信这个错误与版本无关.
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:13:1:为导出的符号'KeycloakService'生成的元数据中遇到错误:
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:18 : 12:收集的元数据包含一个错误,将在运行时:只能初始化变量和常量,因为模板编译器需要此变量的值.
{"_ _ symbolic":"错误","消息":"变量未初始化","行":17,"字符":11}错误:/ home/rafaelvicio/desenv/my-lib/arquitetura-web/projects/pf-siseg/src/lib/keycloak-service/keycloak.service.ts:13:1:为导出的符号'KeycloakService'生成的元数据遇到错误:
/home/rafaelvicio/desenv/my-lib/arquitetura-web/projects /pf-siseg/src/lib/keycloak-service/keycloak.service.ts:18:12:收集的元数据包含将在运行时报告的错误:只能初始化变量和常量,因为此变量的值为模板编译器需要的.
{"_ _ symbolic":"错误","消息":"变量未初始化","行":17,"字符":11} at/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@ angular/compiler-cli/src/metadata/collector.js:707:31位于validateMetadata的Array.forEach()(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@ angular/compiler-cli/src/metadata/collector.js:695:46)在MetadataCollector.getMetadata(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/metadata/collector.js:550 :21)在Object.getSourceFileMetadata上的MetadataCache.getMetadata(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/metadata_cache.js:86:41) home.rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/compiler_host.js:112:56)at Object.readMetadata(/ home/rafaelvicio/desenv/my-lib TsompilerAotCompiler上的/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/metadata_reader.js:46:37)StaticSymbolResolver.getModuleMetadata中的TypeCheckHostAdapter.getMetadataFor(/home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler-cli/src/transformers/compiler_host.js:464:38)(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules/@angular/compiler/src/aot/static_symbol_resolver.js:480:49)在StaticSymbolResolver._createSymbolsOf(/ home/rafaelvicio/desenv/my-lib/arquitetura-web/node_modules) /@angular/compiler/src/aot/static_symbol_resolver.js:268:33)
keycloak.service.ts:
import { Injectable } from '@angular/core';
import { KeycloakLoginOptions } from './keycloak.d';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import * as Keycloak from './keycloak';
export type KeycloakClient = Keycloak.KeycloakInstance;
type InitOptions = Keycloak.KeycloakInitOptions;
@Injectable()
export class KeycloakService {
constructor(private http: HttpClient) { }
static …Run Code Online (Sandbox Code Playgroud) 版本
Angular CLI: 6.0.0
Node: 8.11.1
OS: win32 x64
Angular: 6.0.0
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.0
@angular-devkit/build-angular 0.6.0
@angular-devkit/build-optimizer 0.6.0
@angular-devkit/core 0.6.0
@angular-devkit/schematics 0.6.0
@angular/cdk 6.0.1
@angular/flex-layout 6.0.0-beta.15
@angular/material 6.0.1
@ngtools/webpack 6.0.0
@schematics/angular 0.6.0
@schematics/update 0.6.0
rxjs 6.1.0
typescript 2.7.2
webpack 4.6.0
Run Code Online (Sandbox Code Playgroud)
脚步
Install Angular v6 / CLI v6
ng build --configuration=stage --bh /XYZ/
Run Code Online (Sandbox Code Playgroud)
错误 未知选项:' - bh'
观察到的行为build -bh CLI选项在v6中不起作用(或者已被删除?),但文档尚未更新以反映使用'base-href'构建的新方法?
如何在项目之间共享代码?
我有两个使用以下创建的应用:
ng generate application app1
ng generate application app2
我想projects/app1/src/app.module.ts从中导入一个模块projects/app2/src/shared/common.module.ts
如果没有创建名为common或3rd的第三个项目,最佳做法是什么?创建一个项目/公共或只是common在这里调用一个文件夹并填充TypeScript文件并导入它们.
当创建一个新的 nx 工作区(即使用 create-nx-workspace)然后生成一个应用程序(使用 ng g app)时,它会在 apps 文件夹中创建一个 app 文件夹(到目前为止还不错)和另一个 app-e2e 文件夹,也在应用程序文件夹内。在我看来,在 src 文件夹旁边的 app 文件夹中创建一个 e2e 文件夹会更有意义,因为 e2e 测试应该属于该特定应用程序,而且它不会以这种方式使应用程序文件夹混乱。
那么这个约定背后的原因是什么?
非常感谢!
由于我已将Angular应用程序升级为使用Angular CLI版本6.x,因此将其编译为生产(使用ng build --prod,像往常一样)不会产生缩小的js.这导致非常大的vendor.js尺寸(在我的情况下几乎是10 MB).
如果我打开生成的vendor.js文件,我可以清楚地看到代码没有缩小,并且不会删除注释.
有人请向我解释一下 Angular 6中的ng update与npm update之间的区别吗?
我已经有 4 个版本的 angular 项目。在安装新项目时,不幸的是我安装了 6 个版本的 angular cli。在以 4 版本运行的旧项目中运行 ng serve 命令时,这会向我抛出错误“您的全局 Angular CLI 版本大于您的本地版本”。我再次尝试更新我的 anglar 本地版本。但是现在我收到一个错误此版本的 CLI 仅与 Angular 5.0.0 或更高版本兼容。我的 package.json 如下:
{
"name": "authority-client",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/core": "^0.7.2",
"@angular/animations": "^4.2.4",
"@angular/common": "^4.2.4",
"@angular/compiler": "^4.2.4",
"@angular/core": "^4.2.4",
"@angular/forms": "^4.2.4",
"@angular/http": "^4.2.4",
"@angular/platform-browser": "^4.2.4",
"@angular/platform-browser-dynamic": "^4.2.4",
"@angular/router": "^4.2.4",
"@types/file-saver": "^1.3.0",
"angular2-cookie": …Run Code Online (Sandbox Code Playgroud) angular-cli-v6 ×10
angular ×8
angular-cli ×6
angular6 ×2
javascript ×2
angular-e2e ×1
minify ×1
npm-update ×1
nrwl ×1
typescript ×1