Bitsrc: Транспортер Typescript создает ссылки на module.js.map
Я пытался использовать Bitsrc для совместного использования внешних компонентов в нескольких приложениях. Я могу создавать компоненты и экспортировать их в bitsrc, однако при попытке импортировать и использовать их я сталкиваюсь с ошибками.
Я создал новое приложение Aurelia с au new
, используя Typescript и RequireJS. Затем я создал простой компонент, состоящий из простого HTML.
- src
| - components
| - rocketship
| - rocketship.ts
| - rocketship.html
| - index.ts
При создании этого компонента с помощью bit build
с компилятором машинописи (@0.0.5
), index.js.map
компилируется в следующее:
{"version":3,"file":"module.js","sourceRoot":"","sources":["module.tsx"],"names":[],"mappings":";;AAAA,2CAAsC;AAA7B,kCAAA,SAAO,EAAA"}
Это ссылается на файл module.js
который нигде не определен, что заставляет меня верить, что это является причиной проблемы, с которой я столкнулся.
Когда я устанавливаю компонент через NPM и добавляю его в aurelia.json
как это:
{
"name": "@bit/user.workspace.components.rocketship",
"path": "../node_modules/@bit/user.workspace.components.rocketship/dist",
"main": "index"
}
И запустите приложение, используя au run -w
Я получаю ошибку:
Error: An error occurred while trying to read the map file at C:\Git\Aurelia test application\node_modules\@bit\user.workspace.components.rocketship\dist\module.js.map
Error: ENOENT: no such file or directory, open 'C:\Git\Aurelia test application\node_modules\@bit\user.workspace.components.rocketship\dist\module.js.map'
at readFromFileMap (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:32:11)
at new Converter (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:39:32)
at Object.exports.fromMapFileComment (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:112:10)
at Object.exports.fromMapFileSource (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:131:22)
at acquireSourceMapForDependency (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\bundle.js:184:33)
at work.then (C:\Git\Aurelia test application\node_modules\aurelia-cli\lib\build\bundle.js:206:25)
at <anonymous>
Поэтому Aurelia CLI пытается прочитать файл module.js.map
в папке компонента, которая не существует. Что-то не так с транспортером Typescript? Или Аурелия не способна справиться с результатом перенесенного компонента?
Транспортер, который я использую,
bit.envs/compilers/typescript@0.0.5
2 ответа
Текущий компилятор машинописи работает с жестко запрограммированной конфигурацией, если вы используете это: https://bitsrc.io/bit/envs/compilers/typescript/code Если вы хотите настроить compilerOptions
вам нужно будет разветвить компоненты и настроить их так, как вы хотите.
Под вилкой подразумевается импорт компонента, внесение изменений, маркировка и экспорт в новую область.
Проблема в том, что используемая вами битовая среда имеет собственную конфигурацию, которая отличается от той, которая установлена в вашем проекте. Это связано с тем, что в данный момент Bit поставляется с собственным набором жестко заданных конфигураций.
Вот предлагаемый рабочий процесс для разветвления и перенастройки существующей битовой среды:
- Создайте новый каталог и пустую рабочую область в нем, используя
bit init
- Импортируйте среду, которую вы хотите изменить (но без флага --compiler/tester)
- Откройте и измените файл конфигурации компонента
- Пометьте и экспортируйте новую версию компонента в свою область
Теперь у вас есть собственный компилятор с измененным набором плагинов. Следующим шагом будет возврат к вашему проекту и изменение bit.json
файл, чтобы указать на новый компилятор. После перезапуска bit status
чтобы увидеть, что все компоненты теперь изменены (из-за измененного компилятора). Отметьте и экспортируйте новую версию с помощью нового компилятора.