Связка машинописного текста с множественными записями - PullRequest
0 голосов
/ 12 мая 2019

Я настраиваю проект, чтобы извлечь бизнес-логику моего реагирующего приложения в подмодуль. Я могу связать свертку с машинописью и несколькими записями, и это работает хорошо. Проблема возникает, когда я пытаюсь импортировать функцию из подпапки в логическом модуле. Папка сборки - это 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

...