在 angularjs 中开发两个本地项目(其中一个导入另一个)时,我只需在模块 B 的文件夹中运行“npm link”,然后在我的主模块文件夹中运行“npm link module-B”,每当我更改模块 BI 中的文件时会直接在我的浏览器服务模块 A 中看到它。
但是使用 angular(4) 似乎并不容易。
我使用 ng-packagr 生成 dist 文件夹。
我在 dist 文件夹中运行 npm link 。
我在主模块的文件夹中运行 npm link module-B 。
然后我运行 ng serve --preserve-symlinks。
到目前为止一切顺利,它可以理解模块 B 的组件。但是如果我尝试更改模块 B 中的某些内容,重新运行 ng-packagr,我的主模块的“ng serve”无法编译,我必须停止并启动 ng serve .
我认为 ng-packagr 首先删除了 dist 文件夹,这会触发 ng serve 中的重建,失败并且不会注意到删除 dist 文件夹后新创建的文件。
我们是否必须使用 ng-packagr 或者是否有其他方式来进行多项目本地开发。
更新:
如果我们在 ng-packagr.js 中注释掉这一部分,它不会删除文件夹,并且每当文件更改并运行 ngpackagr 时浏览器都会更新:
return Promise.all([
/*rimraf_1.rimraf(p.dest),*/
rimraf_1.rimraf(p.workingDirectory)
]);
但是运行 ng-packagr 需要一些时间,具体取决于库的大小。因为它构建了整个事物,而不仅仅是更改的文件。