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