另一个项目/模块的TypeScript导入类?

时间:2016-12-07 12:52:43

标签: javascript ruby typescript npm typescript2.0

我正在尝试更改以下项目中的Typescript中编写的以下构建任务: https://github.com/Microsoft/app-store-vsts-extension/blob/master/Tasks/app-store-promote/app-store-promote.ts

我需要像下面显示的那样导入(或其他让我使用ios-signing-common模块中的方法的内容):

import sign = require('ios-signing-common/ios-signing-common');

该导入用于另一个项目中的另一个文件: https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/XamariniOS/xamarinios.ts,但该项目也与ios-signing-common中存在的项目相同。 https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/Common/ios-signing-common/ios-signing-common.ts

那么可以将ios-signing-common模块导入app-store-promote文件吗?

我尝试将github路径“Microsoft / vsts-tasks”添加为package.json中的依赖项,并将其下载到node_modules,但我仍然无法解析ios-signing-common模块。

我希望你们中的任何一个人都能引导我找到解决方案。 :)

1 个答案:

答案 0 :(得分:0)

我想我只需要了解模块解析的工作原理。

我通过在package.json中添加vsts-tasks作为依赖来解决它:

"dependencies": {
    "vsts-task-lib": "^0.9.7",
    "vsts-tasks": "Microsoft/vsts-tasks"
  },

然后我将require路径更改为以下内容:

import sign = require('Agent.Tasks/Tasks/Common/ios-signing-common/ios-signing-common');

它有效!

编辑 - 它可以编译,但在运行时似乎不起作用。它在脚本中失败,因为它找不到Agent.Tasks/Tasks/Common/ios-signing-common/ios-signing-common