Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 获取错误';无法读取属性';长度';未定义的';在angular2应用程序中运行ng serve时_Node.js_Angular_Typescript_Angular Cli - Fatal编程技术网

Node.js 获取错误';无法读取属性';长度';未定义的';在angular2应用程序中运行ng serve时

Node.js 获取错误';无法读取属性';长度';未定义的';在angular2应用程序中运行ng serve时,node.js,angular,typescript,angular-cli,Node.js,Angular,Typescript,Angular Cli,使用angularcli命令ng serve运行angular2应用程序时,我遇到以下问题 dashboard@0.0.0启动C:\Users\padmavathi\Downloads\phototype development\web\dashboard ng发球 请帮我解决这个问题。 提前谢谢 在重构过程中意外删除environment.prod.ts时,我们出现了相同的错误(无法读取createSourceFile[…]处未定义[…]的属性“length”)。恢复此文件解决了我们的问题 另

使用angularcli命令ng serve运行angular2应用程序时,我遇到以下问题

dashboard@0.0.0启动C:\Users\padmavathi\Downloads\phototype development\web\dashboard ng发球

请帮我解决这个问题。 提前谢谢

在重构过程中意外删除
environment.prod.ts
时,我们出现了相同的错误(
无法读取createSourceFile[…]处未定义[…]的属性“length”
)。恢复此文件解决了我们的问题

另外,Github上还报告了一个问题:

引用github(因为我不知道如何直接链接到回复:“>)

我认为在很多情况下,当typescript试图处理一个不存在的文件时会导致这个问题。在我的一个项目中,它是一个丢失的.d.ts文件。在另一个项目中,它是一个丢失的环境ts文件。添加一个console.log(文件名)在node_modules/typescript/lib/typescript.js的createSourceFile函数的开头,我帮助我确定了具体的文件。记住删除更改或重新安装node_模块

资料来源:


最后一个console.log显示了这个麻烦的文件

检测错误的简单方法正在运行 tsc-p
您将在编译源代码时看到完整的错误。

我也遇到了这个问题。我检查了
environment.ts中的所有
文件和其他文件路径

Angular拒绝在我进行任何更改后重建。我尝试了以下方法,然后求助于以下修复:

  • 使用
    rm-rf node_modules/*
    清除node_模块,然后重新安装npm

  • 重新克隆整个回购协议

最后,解决我问题的唯一办法是将
@ngtools/webpack
插件从版本
1.9.0
降级为
1.8.2

我不确定这是否是正确的修复方法,但它对我有效。我在这里添加此评论,因为它可能会节省一些时间

我的配置:

Mac OSX 10.11.6

“@angular/cli”:“1.4.2”

“typescript”:“~2.3.3”

“网页包”:“~3.5.5”

也有同样的问题

我补充说

console.log("createSourceFile " + fileName);
\node\u modules\typescript\lib\typescript.js下的
createSourceFile
函数中

再次运行ng build,记录所有文件。
我设法找到了丢失的文件并进行了处理。

添加一个
if
语句,只打印出麻烦文件的名称,即
if(!sourceText)console.log(“fileName:+fileName”);
这帮助我找到了错误,这是调试@StefanTurcanu的非常有效的方法
console.log("createSourceFile " + fileName);