通过 npm 链接和 typescript 本地开发的多模块
Posted
技术标签:
【中文标题】通过 npm 链接和 typescript 本地开发的多模块【英文标题】:Multi-module via npm link and typescript local development 【发布时间】:2016-10-23 12:28:17 【问题描述】:我正在尝试使用 NPM 将依赖模块 B 与其依赖项 A 链接。使用 this 作为指导,我已经完成了以下操作。
项目A定义为:
"name": "typescript-link-failure-a",
"version": "1.0.0",
"description": "",
"main": "dist/A.js",
"typescript": "dist/A.d.ts",
"scripts":
"setup": "npm link"
,
"author": "",
"license": "ISC",
"devDependencies":
"gulp": "^3.9.1",
"gulp-typescript": "^2.13.6",
"merge2": "^1.0.2"
A.ts
export class A
"foo":string;
npm run-script setup
被执行以创建从该目录到全局 node_modules 的链接。
在项目B中:
"name": "typescript-link-failure-b",
"version": "1.0.0",
"description": "",
"main": "dist/B.js",
"scripts":
"preinstall": "npm link ../A"
,
"author": "",
"license": "ISC",
"devDependencies":
"gulp": "^3.9.1",
"gulp-typescript": "^2.13.6",
"merge2": "^1.0.2"
B.ts
import A from "typescript-link-failure-a"
class B
"foo":A;
我使用 NPM 链接链接回项目 A。我认为链接正在工作,就像在项目 B 的 node_modules 中一样,我可以看到项目 A。
然而,当我尝试
import A from "typescript-link-failure-a"
、Intellij、VS Code 和 TSC 都失败了,说他们不理解名为 typescript-link-failure-a 的模块。
谁能提供见解?
github link to code example
【问题讨论】:
您找到解决方案了吗? 【参考方案1】:在这种情况下,项目 B 需要将执行 NPM 链接引用到项目 A 的 name,而不是路径。
将其更改为 `npm link typescript-link-failure-a' 作为项目 B 根目录中的命令解决了问题。
【讨论】:
在 IntelliJ 中仍然不起作用。我可以在 node_modules 中看到该项目,但是当我转到它的定义时,IDE 指向 @types 而不是 @myBigProject/Dependency 当我在组织中声明了一个依赖项时,它似乎不起作用,比如@myOrg/myDependency,但是如果我只使用像 myDependency 这样的简单名称,它就会起作用。 ://以上是关于通过 npm 链接和 typescript 本地开发的多模块的主要内容,如果未能解决你的问题,请参考以下文章
使用 TypeScript 和 NPM 链接创建 React 应用程序:导致模块解析失败的枚举