typescript - Bitsrc:Typescript 转译器创建对 module.js.map 的引用
问题描述
我一直在尝试使用Bitsrc在多个应用程序中共享前端组件。我能够创建组件并将它们导出到 bitsrc,但是当尝试导入它们并使用它们时,我遇到了错误。
au new
我已经使用 Typescript 和 RequireJS设置了一个新的 aurelia 应用程序。然后,我创建了一个仅由纯 HTML 组成的简单组件。
- src
| - components
| - rocketship
| - rocketship.ts
| - rocketship.html
| - index.ts
使用bit build
typescript 编译器 ( @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 转译器有问题吗?还是 Aurelia 无法处理转译组件的结果?
我正在使用的转译器是
bit.envs/compilers/typescript@0.0.5
解决方案
问题是您使用的 Bit 环境有自己的配置,这与您项目中的设置不同。这是因为目前 Bit 带有自己的一组硬编码配置。
以下是对现有 Bit 环境进行分叉和重新配置的建议工作流程:
- 使用在其中创建一个新目录和一个空工作区
bit init
- 导入要修改的环境(但没有 --compiler/tester 标志)
- 打开并修改组件的配置文件
- 标记新版本的组件并将其导出到您自己的 Scope
现在您拥有自己的编译器和一组修改过的插件。下一步是返回您的项目,并修改bit.json
文件以指向新的编译器。之后重新运行bit status
以查看所有组件现在都已修改(由于修改了编译器)。使用新编译器标记并导出新版本。
推荐阅读
- php - 在 PHP 中获取下一个值
- python - Python MySQL 连接器为准备好的语句返回字节数组而不是字符串
- android - 在 Android 设备中,指纹模板是由供应商特定库还是传感器生成的?
- vb.net - OpenFileDialog 退出后仍然使用内存。这是正常的吗?
- oracle - 有谁知道如何将这个 mysql(trigger) 语法翻译成 oracle 语法?
- swift - 不快速从应用程序委托重定向到另一个视图控制器
- sql - 如何在 SQL 列中返回数学公式的输出?
- python - 如何打破过长的类型文档字符串
- flutter - 在 Flutter 的下拉列表中从 Firebase 获取经过身份验证的用户列表
- regex - 匹配字符串包裹在符号中以进行正则表达式替换