我今天做 Angular 开发时,遇到一个很奇怪的问题:

在某个 Angular library 项目里,无法正确解析出 @Spartacus/core,

错误消息:

Cannot find module ‘@spartacus/core’ or its corresponding type declarations.ts(2307)

但是,就在同一工程的单元测试 .spec.ts 文件里,库的解析是正确的。这种在同一文件夹里不同文件对另外同一个库的解析,出现如此不一致的现象,让我非常费解。

后来经过一番分析,发现是库文件夹里文件 tsconfig.json 引起的原因。

我把该文件的内容清空只剩下面一行,问题消失。

最后问题定位到,加了下图这三行进行 paths 设置后,就出问题了:

 "paths": {"@spartacus/core": ["dist/core"],"@spartacus/storefront": ["dist/storefrontlib"],"@spartacus/cart": ["dist/cart"]},

每次 Visual Studio Code 里修改了 tsconfig.json 之后,都会显示 Initializing Angular Language features:

目录中存在 tsconfig.json 文件表明该目录是 TypeScript 项目的根目录。 tsconfig.json 文件指定了编译项目所需的根文件和编译器选项。

https://stackoverflow.com/questions/52147201/angular-6-declare-path-for-library-in-tsconfig-lib-json

Angular will use the tsconfig.json file, which is configured in the angular.json file in architect --> build --> options --> tsconfig. Whereas VS Code uses the tsconfig.json file, which is at the bottom of the workspace. You need to add the paths in both configurations to get both of them to work correctly, or change the project to use the base tsconfig.json file in the angular.json file.

The tsconfig.json file has a property that extends which will take another file as base and override everything which are declared in the tsconfig.lib.json file. So if you have paths declared in the tsconfig.lib.json file, then the paths are no longer needed in the tsconfig.json file.

更多Jerry的原创文章,尽在:“汪子熙”:

关于 Angular 项目类型为 library 的工程使用 tsconfig.json 的问题相关推荐

  1. Angular 项目工程文件结构介绍

    https://angular.io/guide/file-structure You develop applications in the context of an Angular worksp ...

  2. Portable项目类型之前多个目标类型共享代码的方式

    这两天正好在做共享代码,顺便写个体会.在Visual Studio 2012的Portable项目类型之前,为跨多个技术目标类型(Client Profile.Full Framework.Silve ...

  3. angular项目整合到.net mvc中

    Webpack配置 第一步必然是要先得到前端项目的打包资源,由强大的webpack来完成,目标是将angular的所有依赖以及应用主代码分别打包到polyfill.js.vendor.js.main. ...

  4. Angular项目目录结构

    前言:不支持MakeDown的博客园调格式的话,真的写到快o(╥﹏╥)o了,所以老夫还是转战到CSDN吧,这边就不更新啦啦啦~ CSDN地址:https://blog.csdn.net/Night20 ...

  5. 此安装不支持该项目类型

    问题: 用VS2005打开方案出现"此安装不支持该项目类型"错误是什么原因? 用VS2005打开一个.NET2.0方案,里面有几个工程和一个网站,提示网站的项目无法打开:" ...

  6. 解决:VS2010 无法打开“****”,因为此版本的应用程序不支持其项目类型

    打开一个工程时提示:无法打开"****",因为此版本的应用程序不支持其项目类型 在网上找了很多案,有的说是要改什么配置,有的说要在VS2010的命令提示符中运行什么指令,都不管用. ...

  7. Wind River Workbench 3.x VxWorks项目类型

    今天学习了解了Wind River Workbench 3.x VxWorks项目类型及这些类型之间的关系.7种VxWorks项目类型如下图所示: 如上图,Wind River Workbench 3 ...

  8. 二、E906移植----项目解读与FPGA基本工程搭建

    二.E906移植----项目解读与FPGA基本工程搭建 上篇介绍了基本的环境搭建,并跑了一下官方例程,查看了一下仿真波形.本篇则主要讲一下官方的例程是如何跑通的,涉及到哪些必要步骤,以及对应步骤具体是 ...

  9. Qt中的项目类型(二)

    使用Qt进行软件开发,第一个要考虑的问题就是为需要开发的软件,选择一个合适的Qt项目类型. Qt中的项目类型有: Application: "应用"项目,项目编译结果是可执行程序. ...

最新文章

  1. C# 用户控件之温度计
  2. 西安python工资怎么样-在西安为什么对Python编程需求这么大?工资这么高?
  3. 约瑟夫环之循环链表实现
  4. golang中的panic和recover
  5. UITableViewCell 添加长按手势
  6. 软件需求分层处理的多种常见方式
  7. EClipse开发NDK流程
  8. ShopEx文章页增加上一篇下一篇功能
  9. python强类型_python动态性强类型用法实例
  10. jvm高级特性第4章-虚拟机性能监控与故障处理工具
  11. 在Linux中创建静态库.a和动态库.so
  12. 【转】使用AIDL实现进程间的通信之复杂类型传递
  13. 盘点一下 在Python中安装包的三种方法
  14. [RS] 地理空间数据云 使用ftp批量下载影像(以批量下载Landsat8数据为例)
  15. 网吧服务器发消息,网吧盗号常见途径总结以及解决办法
  16. 易语言源码翻译c,易语言编写翻译小工具源码
  17. 互联网服务器集群基本概念入门
  18. 2021-2027全球与中国翠绿宝石激光器市场现状及未来发展趋势
  19. 数组下标访问越界导致溢出1
  20. 塔望3W消费战略全案|牛小范:即食牛排如何打造品牌「高级感」

热门文章

  1. java定时任务的两种实现方式
  2. java性能调优工具--笔记
  3. ubuntu中解决无法调节屏幕亮度的问题
  4. 基于微服务API级权限的技术架构
  5. Linux系统开机启动流程介绍
  6. openwrt 在centos7 上的开发环境搭建时需要注意的地方
  7. 【8-20】java学习笔记02
  8. C文件操作之写入字符串到指定文件并在屏幕显示
  9. 织梦DEDECMS网站批量删除未审核稿件的方法
  10. Git 常用命令及讲解(不断更新)