Angular 2+项目ng build构建运行期间能否继续进行开发编码工作
Angular项目执行ng build构建时能否同时开展开发工作
首先给出明确结论:不建议在正在跑构建的同一项目目录下做开发修改操作,可能会导致构建失败或产物异常。
具体原因和可行方案如下:
- 构建过程的运行逻辑
你执行的ng build environment=X命令运行时,Angular CLI会依次读取项目内的所有源码、配置文件、静态资源到内存,完成编译、tree shaking、压缩、资源整合等全流程操作。如果在构建未完全结束时修改了项目内的文件,CLI可能会读取到修改前后不一致的内容,要么直接中断构建报错,要么最终输出的dist目录产物存在隐藏问题,无法正常上线使用。 - 并行操作的正确实现方式
如果不想等构建结束再做开发,可以通过两个独立的项目目录规避干扰:- 直接把当前项目文件夹完整复制一份,在复制后的文件夹内执行构建命令,原项目文件夹正常做开发修改即可,两个目录完全独立互不影响。
- 如果你用Git做版本管理,可以使用
git worktree功能创建一个对应待构建提交版本的独立工作目录,在该目录下执行构建,原工作目录的所有修改都不会干扰构建流程。
- 补充说明
如果你能明确判断构建已经进入最终写入产物到dist目录的阶段,此时修改源码不会影响本次构建结果,但普通开发者很难精准定位构建的具体进度,没必要为此冒构建白跑的风险,优先用独立目录跑构建更稳妥。
内容的提问来源于stack exchange,提问作者Danyal Ahmed
相关产品推荐
相关产品推荐

