将具有版本号的nodejs模块导入typescript

时间:2018-04-16 07:47:45

标签: javascript node.js typescript import

所以我有一个似乎使用版本控制系统的节点模块。使用nodejs我只使用

const Package = require('package-name').V1;

没有问题。然而,Typescript不喜欢.V1所以我使用

import { Package } from 'package-name';

符合罚款,但打字稿输出到javascript是

const package_name_1 = require("package-name");

这意味着package_name_1的任何函数或属性都未定义,因为模块似乎没有加载V1.js文件(我假设它是如何工作的......)

所以我试过

import * as Package from 'package-name';

但它输出与以前相同的javascript ..

我正在使用的软件包的实际文件夹结构是

-node_modules
--package-name
---client
----v1
----v1.js

v1.js文件看起来像

var PackageV1 = {}

PackageV1.CONSTANTS = require('./v1/constants');
PackageV1.Request = require('./v1/request');
PackageV1.Session = require('./v1/session');
...

module.exports = PackageV1;

当然比如

const Package = require('package-name.V1');

不起作用

  

错误:找不到模块' package-name.V1'

如何使用typescript方法要求此V1.js文件/目录?

1 个答案:

答案 0 :(得分:0)

正如评论中所暗示的那样

import * as Package from 'package-name';

很好但是在使用包时我必须使用

Package.V1.Request()

而不是

Package.Request()