参考文章:
序
手头有个Angular8的项目,在我本地编译启动后,发现有些样式错版了。
对比了生产环境此元素的CSS,发现是Dev环境下缺失了一个CSS导致的。
看上去就是个普通的icon样式。
分析
因为代码是在生产环境正常工作的,我也没有任何改动,首先怀疑是编译的问题。
简单搜索后,多数反馈是 Angular-cli 版本错误的问题。
查看本地版本为:
Angular-cli 8.3.0,而此项目的Redeme中也表述为8版本。
为了排除是否是Angular-cli 的问题,我还是将Angular-cli的版本更新到了最新,结果项目无法正常启动。
这也正常,因为这个项目是基于8开发的。
陷入僵局, 尝试重写install 和 编译项目,之前看到有些警告,因为没有影响项目启动,忽略了这些。
警告1
首先是 全局Angular-cli版本不一致,这个应该没有影响,因为编译用的8版本,问题不大。
警告2
SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\webpack-dev-server\node_modules\fsevents)
fsevents, wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}
看上去和操作系统有关,简单查看了fsevents,fsevents就是MacOS特有的东西,顺带找到了解决Windows上解决问题的办法。
解决
npm install --no-optional
--no-optional 忽略可选依赖项
optionalDependencies,表示可选依赖项,即使安装失败也不会导致项目运行失败的依赖项。
但是这里忽视这个问题导致了一些CSS的失效,需要 install 的时候加上 --no-optional。
重新 install后,可以正常工作了,问题解决。
本文由 考拉 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Sep 16,2021