小编jow*_*wey的帖子

如何在Angular 6中通过`ng serve`设置环境

我正在尝试将Angular 5.2应用程序更新为Angular 6.我成功地遵循了Angular更新指南中的说明(包括更新angular-cli到v6),现在我正在尝试通过

ng serve --env=local
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

未知选项:' - env'

我使用多个环境(dev/local/prod),这就是它在Angular 5.2中的工作方式.如何在Angular 6中设置环境?

angular-cli angular angular6

135
推荐指数
5
解决办法
8万
查看次数

是否有 Angular/Angular-CLI 和 Node.js 的兼容性列表?

我不时遇到这个问题,不得不使用已弃用的 Angular 依赖项启动旧的 Angular 项目。

因为我不正常地运行最新的 Node.js 版本(至少是 LTS 版本),所以我经常遇到问题,即我无法运行旧项目。我通过使用节点版本管理器解决了这个问题,但我仍然经常遇到问题,我不确定用于 Angular Version X 的最佳 Node.js 版本是什么。

遗憾的是,官方发行说明对这个主题的处理很简陋,并不是真正的帮助,特别是如果您想知道哪个 Angular 版本您不能再使用特定的 Node.js 版本......

是否有完整的兼容性列表来检查哪个 Angular 版本与哪个 Node.js 版本兼容?

node.js angular-cli angular

84
推荐指数
3
解决办法
6万
查看次数

TSLint错误"超过最大行长度120"

在我的Angular2应用程序中,我正在导入一个这样的组件:

import { PersonsSingleAccountComponent} from 
   '../persons-information/fragments/persons-single-account/persons-single-account-bookings/persons-single-account-bookings.component'
Run Code Online (Sandbox Code Playgroud)

它给了我lint错误"超过最大线字符".如果我试图在``(反引号)中给出语句,则会抛出错误.

如何解决这个lint错误?

typescript tslint angular

53
推荐指数
4
解决办法
3万
查看次数

TS中字符串枚举和字符串文字类型之间的差异

假设我想确保myKey{ myKey: '' }只包含字符串foo,bar,baz,我可以通过两种方式实现这一目标.

   // with a String Literal Type 
   type MyKeyType = 'foo' | 'bar' | 'baz';

    // or with a String Enum   
    enum MyKeyType {
       FOO = 'foo',
       BAR = 'bar',
       BAZ = 'baz'
    }
Run Code Online (Sandbox Code Playgroud)

我想知道其中一个的利弊在哪里,因为两个看起来都是一样的(从我访问例如条件检查的值的方式来看).

我在TS文档中发现的唯一区别是Enums是运行时的真实对象,在某些情况下可能是可取的.

typescript

42
推荐指数
5
解决办法
3897
查看次数

角度元素输出在 IE11 中不起作用

我尝试让 Angular Elements 在 IE11 中工作。我的自定义元素(简单按钮)已经显示,输入绑定按预期工作,但输出绑定没有。

在 IE 11 中单击我的自定义元素按钮会导致错误:

该对象不支持此操作

到目前为止我做了什么:

  1. 删除添加的自定义元素的 polyfill ng add @angular/elements(在 IE 中无法正常工作)
  2. 将所有 Angular 包更新为 7.2.1

  3. 将以下 polyfills 添加到polyfills.ts

import 'core-js/shim'
import '@webcomponents/shadydom/shadydom.min.js';
import '@webcomponents/custom-elements/src/native-shim';
import '@webcomponents/custom-elements/custom-elements.min';
Run Code Online (Sandbox Code Playgroud)
  1. 手动引导模块

  2. ng build --output-hashing=none并将所有生成的文件打包到btn-element.js其中http-server用于本地测试(请参阅下面的index.html)。

我错过了特定的 polyfill 还是我做错了什么?或者它只是不可能?

app.module.ts:

@NgModule({
  declarations: [ ButtonComponent ],
  imports: [ BrowserModule ],
  entryComponents: [ ButtonComponent ]
})
export class AppModule {
  constructor(private injector: Injector) {
    const customBtn = createCustomElement(ButtonComponent, { injector …
Run Code Online (Sandbox Code Playgroud)

internet-explorer-11 custom-element angular angular-elements

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

如何用Angular CLI替换SCSS文件?

Angular CLI提供了在构建项目时替换文件的可能性。我想使用此功能将默认样式的SCSS文件替换为包含客户特定CSS的SCSS文件。

但是Angular CLI似乎不能替换SCSS文件。我怎样才能做到这一点?


我尝试过的

environment.default.ts

export const environment = {
  name: 'default'
};
Run Code Online (Sandbox Code Playgroud)

环境特殊

export const environment = {
  name: 'special'
};
Run Code Online (Sandbox Code Playgroud)

默认/_scss-config.scss

@debug ('default'); // gets called but should never be called
Run Code Online (Sandbox Code Playgroud)

特殊的/_scss-config.scss

@debug ('special'); // never gets called
Run Code Online (Sandbox Code Playgroud)

angular.json(仅相关部分)

  "architect": {
    "build": {
      "builder": "@angular-devkit/build-angular:browser",
      "options": {
        "fileReplacements": [
          {
            "replace": "src/environments/environment.default.ts",
            "with": "src/environments/environment.special.ts"
          },
          {
            "replace": "src/scss/default/_scss-config.scss",
            "with": "src/scss/special/_scss-config.scss"
          }
        ],
        "stylePreprocessorOptions": {
          "includePaths": [
            "src/scss/default"
          ]
        }
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

主要

import …
Run Code Online (Sandbox Code Playgroud)

sass angular-cli angular

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