我正在使用IntelliJ IDEA开发Angular应用程序。我在终端窗口中运行ng服务器。 每当我更改任何代码时,angular cli都会自动重新编译,并导致浏览器不断重新加载。我希望只有当我单击“构建项目”图标或按Ctrl + S时,角度cli才能重新编译。 我已经花了几个小时研究IntelliJ和angular cli,但是找不到如何实现它。 如果您知道如何请帮助
答案 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。构建,执行,部署|调试器实时编辑-它会自动保存文件以提供实时重载。
其他一些插件也可以负责自动保存-例如,第三方SonarLint和ESLint插件会引起此类问题,因为它们会保存文件以对更改进行分析,等等。
答案 2 :(得分:1)
最后在IntelliJ中找到设置。
转到[设置->外观和行为->系统设置],然后取消选中以下选项: