- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
最近,我们的前端构建在我们的构建服务器上开始失败。在运行 npm cache clean 并从我们前端的项目目录中删除 node_modules 目录后,我设法在我的本地机器上重现了这个问题。
错误如下:
Jeroen@host:~/project/project-gui/frontend$ ng build
Hash: 68b2d23b79565fad2e33
Time: 15457ms
chunk {0} main.bundle.js, main.bundle.map (main) 184 kB {2} [initial] [rendered]
chunk {1} styles.bundle.css, styles.bundle.map, styles.bundle.map (styles) 153 kB {3} [initial] [rendered]
chunk {2} vendor.bundle.js, vendor.bundle.map (vendor) 3.44 MB [initial] [rendered]
chunk {3} inline.bundle.js, inline.bundle.map (inline) 0 bytes [entry] [rendered]
ERROR in ./~/angular2-logger/app/core/logger.ts
Module build failed: TypeError: Cannot read property 'text' of undefined
at IdentifierObject.TokenOrIdentifierObject.getText (/home/Jeroen/project/project-gui/frontend/node_modules/typescript/lib/typescript.js:53644:56)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:83:72
at Array.some (native)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:83:32
at Array.filter (native)
at _removeModuleId (/home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:82:10)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:167:48
@ ./~/angular2-logger/core.js 6:9-37
@ ./src/app/app.module.ts
@ ./src/app/index.ts
@ ./src/main.ts
@ multi main
ERROR in ./~/angular2-logger/app/core/providers.ts
Module build failed: TypeError: Cannot read property 'text' of undefined
at IdentifierObject.TokenOrIdentifierObject.getText (/home/Jeroen/project/project-gui/frontend/node_modules/typescript/lib/typescript.js:53644:56)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:83:72
at Array.some (native)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:83:32
at Array.filter (native)
at _removeModuleId (/home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:82:10)
at /home/Jeroen/project/project-gui/frontend/node_modules/@ngtools/webpack/src/loader.js:167:48
@ ./~/angular2-logger/core.js 7:9-40
@ ./src/app/app.module.ts
@ ./src/app/index.ts
@ ./src/main.ts
@ multi main
我已经将 angular-cli 更新到最新版本 (1.0.0-beta.25.5)。
我的 package.json 看起来像这样:
{
"name": "project",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"lint": "tslint \"src/**/*.ts\" --project src/tsconfig.json --type-check && tslint \"e2e/**/*.ts\" --project e2e/tsconfig.json --type-check",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor",
"build": "ng build -p --progress false"
},
"private": true,
"dependencies": {
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
"@angular/forms": "^2.3.1",
"@angular/http": "^2.3.1",
"@angular/platform-browser": "^2.3.1",
"@angular/platform-browser-dynamic": "^2.3.1",
"@angular/router": "^3.3.1",
"angular2-logger": "0.5.1",
"angular2-uuid": "1.1.0",
"bootstrap": "^3.3.6",
"core-js": "^2.4.1",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",
"zone.js": "^0.7.2"
},
"devDependencies": {
"@angular/compiler-cli": "^2.3.1",
"@types/jasmine": "2.5.38",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.25.5",
"codelyzer": "~2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "~4.0.13",
"ts-node": "1.2.1",
"tslint": "^4.3.0",
"typescript": "~2.0.3"
}
}
这是 logger.ts 的样子;
import {Injectable, Optional} from "@angular/core";
import {Level} from "./level";
/**
* Logger options.
* See {@link Logger}.
*
* level - How much detail you want to see in the logs, 0 being off, 1 being the less detailed, 5 being the most. Defaults to WARN.
* global - Whether you want the created logger object to be exposed in the global scope. Defaults to true.
* globalAs - The window's property name that will hold the logger object created. Defaults to 'logger'.
* store - Whether you want the level config to be saved in the local storage so it doesn't get lost when you refresh. Defaults to false.
* storeAs - The local storage key that will be used to save the level config if the store setting is true. Defaults to 'angular2.logger.level'.
*
* Created by Langley on 3/23/2016.
*
*/
export class Options {
level: Level;
global: boolean;
globalAs: string;
store: boolean;
storeAs: string;
}
// For browsers that don't implement the debug method, log will be used instead. Fixes #62.
const CONSOLE_DEBUG_METHOD = console["debug"] ? "debug" : "log";
// Temporal until https://github.com/angular/angular/issues/7344 gets fixed.
const DEFAULT_OPTIONS: Options = {
level: Level.WARN,
global: true,
globalAs: "logger",
store: false,
storeAs: "angular2.logger.level"
};
@Injectable()
export class Logger {
private _level: Level;
private _globalAs: string;
private _store: boolean;
private _storeAs: string;
public Level: any = Level;
constructor( @Optional() options?: Options ) {
// Move this to the constructor definition when optional parameters are working with @Injectable: https://github.com/angular/angular/issues/7344
let { level, global, globalAs, store, storeAs } = Object.assign( {}, DEFAULT_OPTIONS, options );
this._level = level;
this._globalAs = globalAs;
this._storeAs = storeAs;
global && this.global();
if ( store || this._loadLevel() ) this.store();
}
private _loadLevel = (): Level => Number(localStorage.getItem( this._storeAs ));
private _storeLevel(level: Level) { localStorage[ this._storeAs ] = level; }
error(message?: any, ...optionalParams: any[]) {
this.isErrorEnabled() && console.error.apply( console, arguments );
}
warn(message?: any, ...optionalParams: any[]) {
this.isWarnEnabled() && console.warn.apply( console, arguments );
}
info(message?: any, ...optionalParams: any[]) {
this.isInfoEnabled() && console.info.apply( console, arguments );
}
debug(message?: any, ...optionalParams: any[]) {
this.isDebugEnabled() && ( <any> console )[ CONSOLE_DEBUG_METHOD ].apply( console, arguments );
}
log(message?: any, ...optionalParams: any[]) {
this.isLogEnabled() && console.log.apply( console, arguments );
}
global = () => ( <any> window )[this._globalAs] = this;
store(): Logger {
this._store = true;
let storedLevel = this._loadLevel();
if ( storedLevel ) { this._level = storedLevel; }
else { this._storeLevel( this.level ); }
return this;
}
unstore(): Logger {
this._store = false;
localStorage.removeItem( this._storeAs );
return this;
}
isErrorEnabled = (): boolean => this.level >= Level.ERROR;
isWarnEnabled = (): boolean => this.level >= Level.WARN;
isInfoEnabled = (): boolean => this.level >= Level.INFO;
isDebugEnabled = (): boolean => this.level >= Level.DEBUG;
isLogEnabled = (): boolean => this.level >= Level.LOG;
get level(): Level { return this._level; }
set level(level: Level) {
this._store && this._storeLevel(level);
this._level = level;
}
}
最佳答案
2017 年 1 月 20 日更新:
angular-cli: 1.0.0-beta.26
has now been released and appears to fix this issue.
旧(过时)答案:
我相信您正在经历类似于 this issue 的事情在 angular-cli
项目中被跟踪。
在 angular-cli
项目修复之前,回滚到 angular-cli: 1.0.0-beta.21
似乎可以解决问题。可以关注project upgrade instructions 降级到 angular-cli: 1.0.0-beta.21
。在按照这些说明进行操作时,请务必将 npm install
命令中的 angular-cli@latest
替换为 angular-cli@1.0.0-beta.21
.
我认为还值得一提的是,最新的 Angular 2 版本(2.4.3
/router 3.4.3
)似乎与 angular- cli@1.0.0-beta.21
,因此您应该能够将这些版本保留在您的 package.json
文件中,而不是使用 ng init
的版本> 尝试让你使用。
关于angular - 使用angular-cli在angular2前端构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41672828/
我在全局范围内安装了最新的 angular-cli,并且我的项目正在成功构建。 在阅读另一个问题的建议解决方案时,(https://github.com/angular/angular-cli/iss
根据official docs关于 .angular-cli.json 配置文件,仅支持 main、test、polyfills 作为 webpack 入口文件。 如何通过定义 .angular-cl
我想在s3存储桶中搜索文件名abc.zip,并且有将近60个存储桶,每个存储桶都有2到3个级别的子目录或文件夹。我尝试使用AWS CLI命令执行搜索,以下是我尝试过的命令,但即使文件存在于存储桶中,也
我正在尝试在 C++/CLI 中查找赋值运算符和复制构造函数的示例。我在 Google 上花了很多时间,但令人惊讶的是我找不到一个看起来很常见的例子。 最佳答案 .NET 语义没有复制构造函数或赋值运
我需要获取另一个窗口的句柄。 这是它的代码: private: System::Void btn_find_Click(System::Object^ sender, System::EventAr
有点好奇实际上有多少人使用 C++/CLI?那么有多少人在使用它呢?人们是否只在托管环境下寻找程序员的特定工作?围绕 c++/cli 的社区有多大?从我目前看到的情况来看,有不少语法变化,作为 C++
我正在阅读一些 C++/CLI Material ,并且遇到了文字字段的概念: literal int inchesPerFoot = 12; 这是否比 const 更可取,因为 const FIEL
通过 npm install -g angular-cli@latest 安装 Angular CLI (angular-cli@1.0.0-beta.16) 失败,出现以下错误 npm-debug.
我正在尝试在我的 Ember CLI 应用程序中配置适配器以根据环境使用不同的主机。在开发中,我希望它是默认的当前主机(让我通过 --proxy 选项自定义它,但在生产中我知道它将是 http://s
我最近开始使用 Angular/CLI 工具,我在执行文件时遇到了一个问题,那就是我运行时 ng serve 那么这个命令可以帮助我们在源文件中进行任何更改时自动重新加载站点,但在我的系统中它没有发生
是否有推荐的方法通过 c++ cli 包装 native c++ 库? 最佳答案 不确定是否一种尺寸适合所有人,但是,是的,这很大程度上是一个机械过程。您的 ref 类包装器应该声明一个私有(priv
我有一个关于为要在 C# 中使用的 native C++ 类创建 C++ CLI 包装器的问题。 这是一个示例代码: #include "stdafx.h" #pragma once using na
下面的代码打印 0 和 3。这是代码生成错误吗?我在 .NET 4.0 下使用 Visual Studio 2012 Update 3 RC 运行它 #include "stdafx.h" using
它是如何工作的?它是否有不同的部分 - 有些方法是托管的,有些是非托管的,它是否将每个方法都转换为托管的,试图保持所有东西都处于托管状态并在必须时进行互操作调用? 最佳答案 三种不同的compiler
如果我没记错的话,函数必须是 CLR 世界中类的成员,而全局函数在 C++/CLI 中是可能的。这是否意味着这些全局函数是某种隐藏的“全局”类的一部分?如果是这样,出于反射目的,人们将如何获取其类型?
如何在 Angular 中重建我的项目。我首先使用 ng build 构建它,但无法再次执行该命令,因为它不会让我更改文件夹。 我收到此错误消息: EPERM:不允许操作,lstat 是否有另一个命令
我遇到了两个相互引用的类的问题。我曾尝试使用接口(interface)来解决问题,但遇到了其他问题,例如类重新定义。我只是不确定如何正确执行此操作。 这是我正在做的事情的一个例子。注意:我已经去掉了所
我是 React.js 的新手,我正在尝试从 tutorialspoint 上的教程中学习但我遇到了错误。这是我执行 npm start 命令时控制台上的错误: C:\Users\HP\Desktop
我正在尝试将我的 angular cli 和 angular core 从 12 升级到 13,但看起来存在对等依赖性问题。有人遇到过这个问题吗? npx @angular/cli@13 update
我正在我的 ubuntu 上安装 influxdb_2.0.9,我按照这里的说明操作: https://docs.influxdata.com/influxdb/v2.0/install/?t=Lin
我是一名优秀的程序员,十分优秀!