Javascript 使用angular/cli版本1.0.0-beta.28.3时出现非常奇怪的错误

Javascript 使用angular/cli版本1.0.0-beta.28.3时出现非常奇怪的错误,javascript,node.js,angular-cli,Javascript,Node.js,Angular Cli,尝试为应用程序提供ng服务时发送此错误 86%hashingcrypto.js:74 this.\u handle.update(数据、编码); ^TypeError:数据必须是字符串或缓冲区 at TypeError(本机) 在Hash.update上(crypto.js:74:16) 在HarmonyExportImportedSpecifierDependency.updateHash (C:\Users\seanr\projects\DerrickAlphaFebTest\angular

尝试为应用程序提供ng服务时发送此错误

86%hashingcrypto.js:74 this.\u handle.update(数据、编码); ^TypeError:数据必须是字符串或缓冲区 at TypeError(本机) 在Hash.update上(crypto.js:74:16) 在HarmonyExportImportedSpecifierDependency.updateHash (C:\Users\seanr\projects\DerrickAlphaFebTest\angular-src\node\u modules\angular\cli\node\u modules\webpack\lib\dependencies\harmonyExportedImportedSpecifierDependency.js:144:8) 位于C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\angular\cli\node\u modules\webpack\lib\DependenciesBlock.js:33:5 at Array.forEach(本机) 在NormalModule.DependenciesBlock.updateHash(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\DependenciesBlock.js:32:20) 在NormalModule.Module.updateHash(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\angular\cli\node\u modules\webpack\lib\Module.js:162:41) 在NormalModule.updateHash(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\NormalModule.js:327:30) 在modules.forEach.m(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\angular\cli\node\u modules\webpack\lib\Chunk.js:253:31) at Array.forEach(本机) 在Chunk.updateHash(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\Chunk.js:253:16) 在Compilation.createHash(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\Compilation.js:1121:10) 在sealPart2(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\Compilation.js:605:9) 下一步(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\tapable\lib\tapable.js:138:11) 在汇编时。(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\@angular\cli\node\u modules\webpack\lib\ProgressPlugin.js:110:5) 下一步(C:\Users\seanr\projects\DerrickAlphaFebTest\angular src\node\u modules\tapable\lib\tapable.js:140:14)


我发现我刚刚启动了一个新项目并复制了package.json和node_模块,修复了所有问题。

我发现我刚刚启动了一个新项目并复制了package.json和node_模块,修复了所有问题。

您可以通过手动编辑以下文件来改进错误消息:节点_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js并在第144行插入一些日志:

     updateHash(hash) {
      super.updateHash(hash);
      const hashValue = this.getHashValue(this.importDependency.module);
      if (this.importDependency.module != null){
         // console.log('Module resource: ',       this.importDependency.module.resource);
      }else{
         console.log('\nFile not found: ', this.importDependency);
      }
      hash.update(hashValue);
   }
然后您可以得到清晰的错误消息

86% hashing                                  
File not found:  HarmonyImportDependency {
module: null,
request: '@angular/cdk/a11y',
userRequest: '@angular/cdk/a11y',
range: [ 237, 339 ],
importedVar: '__WEBPACK_IMPORTED_MODULE_1__angular_cdk_a11y__',
loc: 
SourceLocation {
 start: Position { line: 9, column: 0 },
 end: Position { line: 9, column: 102 } } }
crypto.js:97
this._handle.update(data, encoding);
然后搜索请求中指定的文件,这里是@angular/cdk/a11y

在我的例子中,我发现名为@angular/cdk/a11y的文件丢失了。我安装了丢失的文件以使其正常工作


参考:

您可以通过手动编辑以下文件来改进错误消息:node_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js并在第144行插入一些日志:

     updateHash(hash) {
      super.updateHash(hash);
      const hashValue = this.getHashValue(this.importDependency.module);
      if (this.importDependency.module != null){
         // console.log('Module resource: ',       this.importDependency.module.resource);
      }else{
         console.log('\nFile not found: ', this.importDependency);
      }
      hash.update(hashValue);
   }
然后您可以得到清晰的错误消息

86% hashing                                  
File not found:  HarmonyImportDependency {
module: null,
request: '@angular/cdk/a11y',
userRequest: '@angular/cdk/a11y',
range: [ 237, 339 ],
importedVar: '__WEBPACK_IMPORTED_MODULE_1__angular_cdk_a11y__',
loc: 
SourceLocation {
 start: Position { line: 9, column: 0 },
 end: Position { line: 9, column: 102 } } }
crypto.js:97
this._handle.update(data, encoding);
然后搜索请求中指定的文件,这里是@angular/cdk/a11y

在我的例子中,我发现名为@angular/cdk/a11y的文件丢失了。我安装了丢失的文件以使其正常工作


参考资料:

调试这样的问题非常困难。库和节点版本之间存在许多依赖关系(这是什么?)。最好的办法是把东西一件一件地搬走,直到它停止破碎;或者,换一种方式,启动一个新的应用程序,然后逐个添加内容,直到它停止工作。首先尝试将angular cli升级到1.0.0。可能与此相关:?请查看注释。调试这样的问题非常困难。库和节点版本之间存在许多依赖关系(这是什么?)。最好的办法是把东西一件一件地搬走,直到它停止破碎;或者,换一种方式,启动一个新的应用程序,然后逐个添加内容,直到它停止工作。首先尝试将angular cli升级到1.0.0。可能与此相关:?请参阅评论。它取决于@ngtools/webpack版本,您可以选择安装在其node_modules文件夹中。我在Angular项目中遇到了同样的问题,我在devdependences中添加了包“”:“1.4.0”。(我们增加了angular选择作为其依赖项安装的版本)此通用错误消失,项目导入/导出错误显示它依赖于angular选择安装在其node_modules文件夹上的@ngtools/webpack版本。我在Angular项目中遇到了同样的问题,我在devdependences中添加了包“”:“1.4.0”。(我们增加了angular选择作为其依赖项安装的版本),这个通用错误消失了,显示了项目导入/导出错误