带有项目引用的打字稿创建了无法解决的依赖关系

问题描述

结构:

cmake_minimum_required(VERSION 3.8)
project(codego)

file(GLOB CODEGO_SOURCES "src/*.cpp")
file(GLOB CODEGO_HEADERS "include/*.h")
file(GLOB CODEGO_UIS "ui/*.ui")
file(GLOB CODEGO_RES "res/*.qrc")

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_AUTOUIC_SEARCH_PATHS ui)

add_executable(${PROJECT_NAME} src/main.cpp ${CODEGO_UIS})

target_include_directories(${PROJECT_NAME} PUBLIC include)
target_include_directories(${PROJECT_NAME} PUBLIC ui)
target_include_directories(${PROJECT_NAME} PUBLIC res)

find_package(Qt5Core required)
find_package(Qt5Gui required)
find_package(Qt5Widgets required)
find_package(Qt5Xml required)
find_package(Qt5Svg required)

# Add the include directories for the Qt 5 modules to the compile lines.
include_directories(${Qt5Core_INCLUDE_Dirs}/QtCore)
include_directories(${Qt5Gui_INCLUDE_Dirs}/QtGui)
include_directories(${Qt5Widgets_INCLUDE_Dirs}/QtWidgets)
include_directories(${Qt5Xml_INCLUDE_Dirs}/QtXml)
include_directories(${Qt5Xml_INCLUDE_Dirs}/QtSvg)

# Use the compile deFinitions defined in the Qt 5 modules
add_deFinitions(${Qt5Core_DEFinitioNS})
add_deFinitions(${Qt5Gui_DEFinitioNS})
add_deFinitions(${Qt5Widgets_DEFinitioNS})
add_deFinitions(${Qt5Xml_DEFinitioNS})
add_deFinitions(${Qt5Svg_DEFinitioNS})

qt5_wrap_ui(WRAP_UI_MOC ${CODEGO_UIS})
qt5_wrap_cpp(WRAP_HEADER_MOC ${CODEGO_HEADERS})

include_directories(${PROJECT_SOURCE_DIR})
include_directories(${PROJECT_BINARY_DIR})
include_directories(${CMAKE_BINARY_DIR})

include_directories(include)

add_library(PROJECT_LIBRARIES SHARED
    ${CODEGO_SOURCES}
    ${WRAP_UI_MOC}
    ${WRAP_HEADER_MOC})

target_link_libraries(${PROJECT_NAME} 
                        Qt5::Core 
                        Qt5::Gui
                        Qt5::Widgets
                        Qt5::Xml
                        Qt5::Svg)

target_link_libraries(${PROJECT_NAME} PROJECT_LIBRARIES)

src / module / tsconfig.json(可能是问题所在):

node_modules
└── <node modules here>
src
├── module
│   ├── dist
|   |   ├── foo.d.ts
│   │   └── foo.js
│   ├── foo.ts
│   └── tsconfig.json
└── main
    ├── <.ts files>
    └── tsconfig.json

问题:

{
  "compilerOptions": {
    "sourceMap": true,"module": "commonjs","moduleResolution": "node","importHelpers": true,"downlevelIteration": true,"target": "ES2019","outDir": "./dist/","allowJs": true,"composite": true,"declaration": true,"lib": ["es2016"]
  }
}

src / main / tsconfig.json,以防万一:

tsc --build src/main
src/module/dist/foo.d.ts:1:23 - error TS2688: Cannot find type deFinition file for 'draft-js/node_modules/immutable'.

1 /// <reference types="draft-js/node_modules/immutable" />
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules中的文件本身显然存在。

tsc --build src / module完成没有错误

在转换为打字稿项目引用之前,一切正常。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)