Компиляция модуля React Typescript для NPM - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь собрать и опубликовать свой первый модуль NPM, и у меня есть несколько вопросов о передовой практике при компиляцииПроект представляет собой компонент React, написанный на Typescript и использующий SASS.

Мой компонент работает должным образом, когда я импортирую index.ts непосредственно в тестовый файл и объединяю все это с помощью веб-пакета.Однако, если я связываю его, я теряю всю прелесть Typings при импорте в другой проект, но если я пытаюсь использовать скомпилированный JS без объединения, у меня появляются ошибки при разрешении различных ресурсов, включая файлы SCSS / CSS и файлы JSON.

Я знаю, что это довольно большой вопрос, но я не смог найти действительно хороший ответ о том, как мне следует структурировать проект.Из других пакетов я заметил кое-что: - папки build / dist обычно содержат связанный js-файл - папки lib обычно содержат js-файлы и наборы, а иногда и файлы карты

Итак, у меня возник вопроскак связаны между собой связки и скомпилированные js-файлы, и как мне настроить компиляторы, чтобы они работали.

Я играл с webpack и tsc, но не могу получить комбинациюза работой.Последняя проблема, с которой я столкнулся, это то, что скомпилированный JS в моей папке dist жалуется, что он не может разрешить файлы module.scss, что правильно, так как scss был скомпилирован в css с использованием node-sass, но, очевидно, ссылки не обновились должным образом,Пакет работает, когда я использую веб-пакет, но теряет наборы при импорте в другой проект.

Мой TSCONFIG выглядит следующим образом:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["es6", "dom", "es2017"],
    "module": "commonjs",
    "declaration": true,
    "outDir": "./dist",
    "strict": true,
    //"rootDir": "src",
    "jsx": "react",
    "resolveJsonModule": true,
    "sourceMap": true,
    "moduleResolution": "node"
  },
  "include": ["src"],
  "exclude": ["node_modules", "**/__tests__/*", "temp"]
}

, и я использую следующий скрипт для сборки скомпилированного JS:

"build":"tsc && node-sass --recursive --output dist --source-map true --source-map-contents src && cp -r ./src/schemas ./dist/"

Источник находится на github здесь: https://github.com/androidpage/json-form-builder

Извинения, проект сейчас немного запутан, но основной целью было научиться структурировать и компилироватьпроект, таким образом, этот вопрос :)

Спасибо за любую помощь, которую вы можете предложить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...