IntelliJ IDEA + Angular ng-serve每次更改都会重新编译

时间:2019-03-27 20:48:00

标签: angular intellij-idea angular-cli serve

我正在使用IntelliJ IDEA开发Angular应用程序。我在终端窗口中运行ng服务器。 每当我更改任何代码时,angular cli都会自动重新编译,并导致浏览器不断重新加载。我希望只有当我单击“构建项目”图标或按Ctrl + S时,角度cli才能重新编译。 我已经花了几个小时研究IntelliJ和angular cli,但是找不到如何实现它。 如果您知道如何请帮助

3 个答案:

答案 0 :(得分:1)

除非保存文件,否则cli不会编译。除非您的IDE自动保存,否则在按Ctrl + S之前不会重新加载。

但是,您仍然可以使用import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: TabBarApp(), ); } } class TabBarApp extends StatefulWidget { createState() => _TabBarAppState(); } class _TabBarAppState extends State<TabBarApp> with SingleTickerProviderStateMixin { TabController _controller; List<TabData> _tabData; List<Tab> _tabs = []; List<Widget> _tabViews = []; Color _activeColor; @override void initState() { super.initState(); _tabData = [ TabData(title: 'First Tab', color: Colors.red), TabData(title: 'Second Tab', color: Colors.green), TabData(title: 'Third Tab', color: Colors.blue), ]; _activeColor = _tabData.first.color; _tabData.forEach((data) { final tab = Tab( child: Container( constraints: BoxConstraints.expand(), color: data.color, child: Center( child: Text(data.title), ), ), ); _tabs.add(tab); final widget = Scaffold(backgroundColor: data.color); _tabViews.add(widget); }); _controller = TabController(vsync: this, length: _tabData.length) ..addListener(() { setState(() { _activeColor = _tabData[_controller.index].color; }); }); } @override void dispose() { _controller?.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Theme( data: ThemeData(primaryColor: _activeColor), child: Scaffold( backgroundColor: _activeColor, appBar: AppBar( title: Text('Multi Colored Tab Bar'), bottom: TabBar( indicatorColor: _activeColor, labelPadding: EdgeInsets.zero, controller: _controller, tabs: _tabs, ), ), body: TabBarView( controller: _controller, children: _tabViews, ), ), ); } } class TabData { TabData({this.title, this.color}); final String title; final Color color; } 选项在更改时不重新加载浏览器,或者使用--liveReload=false增加更改检测之间的时间间隔。

有关选项,请参考official documentation

答案 1 :(得分:1)

保存时实时重载是Angular CLI功能,可以通过将--liveReload=false传递到ng serve来禁用。但是它只会在显式的 Save 上重建并重新加载页面,而不是在每次文件更改时都重新构建和重新加载页面。要使其仅在击中Ctrl+S时起作用,您需要在IDEA中禁用自动保存。 IDEA通常不会在每次按键时自动保存文件。如果仅在调试您的应用程序时发生,请检查设置| |中的Live Edit(在调试会话中处于活动状态)是否为enabled。构建,执行,部署|调试器实时编辑-它会自动保存文件以提供实时重载。 其他一些插件也可以负责自动保存-例如,第三方SonarLintESLint插件会引起此类问题,因为它们会保存文件以对更改进行分析,等等。

答案 2 :(得分:1)

最后在IntelliJ中找到设置。

转到[设置->外观和行为->系统设置],然后取消选中以下选项:

  • 在框架或编辑器选项卡激活时同步文件
  • 在停用框架时保存文件
  • 如果应用程序空闲了[]秒,则会自动保存文件