2016-06-21 70 views
1

我正在尝试使用NPM来链接依赖模块B及其依赖项A.以this为指导,我完成了以下工作。通过npm链接和打印本地开发的多模块

项目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",诠释ellij,VS Code和TSC都没有说明他们不了解名为typescript-link-failure-a的模块。

任何人都可以提供见解?

github link to code example

回答

1

在这种情况下,是指执行NPM链接到项目A的需要项目B,而不是路径。

将其更改为`npm link typescript-link-failure-a'作为项目B根目录中的命令解决了该问题。