Я настраиваю проект, чтобы извлечь бизнес-логику моего реагирующего приложения в подмодуль.
Я могу связать свертку с машинописью и несколькими записями, и это работает хорошо. Проблема возникает, когда я пытаюсь импортировать функцию из подпапки в логическом модуле.
Папка сборки - это dist /, а имя модуля - core.
Итак, я импортирую свою функцию по import {configureStore} from 'core'
.
Все в порядке с этим, но чтобы импортировать функцию в подпапке, машинопись говорит мне, что она не существует:
import {myFunc} from 'core/utils'
.
Между я могу написать это: import {myFunc} from 'core/dist/utils
, и это хорошо работает ...
tsconfig.js:
{
"compilerOptions": {
"outDir": "dist/",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom", "es2016", "es2017"],
"sourceMap": true,
"allowJs": false,
"jsx": "react",
"rootDir": "./",
"declaration": true,
"moduleResolution": "node",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"noUnusedParameters": true
},
"include": ["src"],
"exclude": ["node_modules", "build", "dist", "example", "rollup.config.js"]
}
rollup.config.js:
import typescript from 'rollup-plugin-typescript2';
import external from 'rollup-plugin-peer-deps-external';
import commonjs from 'rollup-plugin-commonjs';
import resolve from 'rollup-plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
import pkg from './package.json';
export default {
input: {
index: 'src/index.ts',
'translation/i18n': 'src/translation/i18n.ts',
},
output: [
{
dir: 'dist',
format: 'es',
sourcemap: true,
exports: 'named',
},
],
external: [
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {}),
],
plugins: [
external(),
resolve({ dedupe: ['react', 'react-dom'] }),
typescript({}),
commonjs(),
],
};
package.json (ядро):
{
"name": "core",
"version": "1.0.0",
"main": "dist/index.js",
"module": "dist/index.js",
"files": [
"dist/*"
],
...
}
Связывание базового пакета:
{
...
"core": "link:../core",
}
Что я упустил, чтобы не иметь возможности импортировать функцию / класс из подпапки без использования dist в пути импорта?
Вот репо: https://github.com/Jm-Zion/react-moduled