У меня есть небольшой пакет npm на основе TypeScript со следующим tsconfig.json
:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"strict": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
},
"include": [
"src/**/*"
]
}
. В его src/index.ts
он экспортирует два класса, один из которых по умолчанию:
import StateMachine from './StateMachine';
import Chunk from './Chunk';
exports.StateMachine = StateMachine;
exports.Chunk = Chunk;
export default StateMachine;
Это скомпилировано в следующий файл в dist/index.js
:
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const StateMachine_1 = __importDefault(require("./StateMachine"));
const Chunk_1 = __importDefault(require("./Chunk"));
exports.StateMachine = StateMachine_1.default;
exports.Chunk = Chunk_1.default;
exports.default = StateMachine_1.default;
Теперь, в другом проекте, где я также использую TypeScript, я хочу использовать оба этих экспортированных члена , Поэтому я пишу:
import StateMachine, { Chunk } from '@foo/bar';
Однако я получаю сообщение об ошибке, говорящее, что «Модуль… не имеет экспортированного чанка участника». Экспорт по умолчанию, однако, найден без проблем. Это tsconfig.json
другого проекта:
{
"compilerOptions": {
"jsx": "react",
"target": "es5",
"module": "esnext",
"noEmitOnError": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"stripInternal": false,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"strict": true,
"noImplicitAny": true,
"declaration": false,
"useDefineForClassFields": true,
"skipLibCheck": true,
},
"include": [
"source",
"webpack.config.js"
]
}
Что я здесь не так делаю?