解决从index.ts发布到NPM的导出问题?

时间:2018-09-25 20:37:01

标签: node.js angular typescript npm stackblitz

我有this package,带有index.ts文件。

安装在index.d.ts下的相应node_modules/@fireflysemantics/slice文件如下所示:

export { EStore } from './EStore';
export { Slice } from './Slice';
export { OStore } from './OStore';
export * from './types';

相应的index.js如下所示:

"use strict";
function __export(m) {
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
var EStore_1 = require("./EStore");
exports.EStore = EStore_1.EStore;
var Slice_1 = require("./Slice");
exports.Slice = Slice_1.Slice;
var OStore_1 = require("./OStore");
exports.OStore = OStore_1.OStore;
__export(require("./types"));
//# sourceMappingURL=index.js.map

当我尝试使用Stackblitz导入OStore时,它不会解析为根导入。例如,这项工作:

import {OStore} from '@fireflysemantics/slice/OStore';

但这不是:

import {OStore} from '@fireflysemantics/slice/';

如果有帮助,这里有一个stackblitz链接:

https://stackblitz.com/edit/typescript-vj1vpa

stackblitz错误为:

  

找不到模块:   @ fireflysemantics / slice / index.ts(@ 6.4.2)检查您的导入语句并确保您导入的模块名称正确。

在安装到NPM之前应将index.ts复制到分发文件夹吗?

1 个答案:

答案 0 :(得分:1)

在导入文件夹时,就像执行以下操作一样:

import {OStore} from '@fireflysemantics/slice/';

它将尝试导入该文件夹中的index.ts文件。因此,如果错误不是模块或不存在,则为错误。