Node.js 是什么阻止我的AngularJs 2应用程序运行inspector中显示的命令?
我正在用Angular 2做实验。我使用Node.js 是什么阻止我的AngularJs 2应用程序运行inspector中显示的命令?,node.js,angular,typescript,Node.js,Angular,Typescript,我正在用Angular 2做实验。我使用npm start在Chrome中创建了一个实时编码环境,我看到了不寻常的行为 我的代码库的早期版本出现在文件A.service.ts中,如下所示: export class AService{ constructor( private http : Http ){} test( valueA : string, valueB : string ){ var dataObj = { valueA, valueB }
npm start
在Chrome中创建了一个实时编码环境,我看到了不寻常的行为
我的代码库的早期版本出现在文件A.service.ts中,如下所示:
export class AService{
constructor( private http : Http ){}
test( valueA : string, valueB : string ){
var dataObj = { valueA, valueB }
console.log( dataObj );
console.log( this.http );
}
}
运行我的程序后,控制台将成功显示两个对象。第一个对象向我显示了值“valueA”和“valueB”,第二个对象是Http对象,它向我演示了我的服务已正确加载,并且正在使用预期值调用该方法。为了将来参考,我们将此控制台日志模式称为“输出A”
我更改了我的服务定义。我换了好几次。每次保存文件的新版本时,应用程序都会重新加载自身。在每个版本中,我都试图将代码和控制台输出添加到服务对象测试方法中。然而,在每次迭代中,只会出现“输出A”
我删除了测试方法的所有原始行,再次运行代码,仍然看到“Output A”
我在inspector中跟踪代码的执行,inspector会逐行检查新代码,现在看起来如下所示:
export class AService{
constructor( private http : Http ){}
test( valueA : string, valueB : string ){
console.log( "Testing AService. Method called successfully.");
}
}
调试行向我显示,执行的下一个命令应该将字符串“testingaservice…”记录到控制台,但我看到的不是这个,而是我以前实现中的“Output A”。我检查了.ts文件和.js文件,它们都显示了新的代码库。Chrome显示了新的代码库,但控制台正在接收来自旧代码库的日志消息
我已经使用Ctrl-C关闭了npm,并再次调用了npm start
,但仍然看到了旧代码库的输出
这真让我困惑!对可能发生的事情有什么想法吗
浏览器缓存擦除后,系统重新启动后的屏幕截图:
更新
重新启动系统并清除所有缓存后,我再次搜索了所有的.js文件,发现原来的代码库实际上在.js文件中。我的问题的答案似乎在于删除这些文件,然后重新启动NPM。。。。在监视模式下运行TSC应用程序时,有东西阻止NPM覆盖JavaScript文件。我的问题的答案似乎在于删除这些文件,然后重新启动NPM。。。。在监视模式下运行TSC应用程序时,有什么东西阻止NPM覆盖JavaScript文件
请参阅原始问题中的更新。如果我使用的是webpack或其他文件绑定器,您可能需要重新启动在
npm start
中运行的任何程序,清除web浏览器的缓存并清除生成的文件(这将有助于了解您是否正在使用webpack或其他工具来绑定生成的文件),我这样做是不知不觉的。根据您的建议,我已将所有值类型的浏览器缓存“擦除到时间的开始”。我已经关闭了npm服务器、Chrome浏览器和IDE,并且重新启动了计算机。尽管如此,我还是看到了旧代码库的输出,它不再存在于可见文件中。我可以补充说,在上周结束时,我更改了我的package.json文件,使其具有以下设置:{“scripts:{“start”:“concurrent\”npm run tsc:w\“\”npm run lite\“…}}。。。。这是在另一篇帖子建议对“npm start”命令进行此更改后完成的,以避免在我尝试使用“npm start”运行Quickstart seed package.json文件的第二次、第三次和第四次时出现致命错误。新脚本将“并发”标识符移动到命令行的开头。