首页 > 解决方案 > Bitsrc:Typescript 转译器创建对 module.js.map 的引用

问题描述

我一直在尝试使用Bitsrc在多个应用程序中共享前端组件。我能够创建组件并将它们导出到 bitsrc,但是当尝试导入它们并使用它们时,我遇到了错误。

au new我已经使用 Typescript 和 RequireJS设置了一个新的 aurelia 应用程序。然后,我创建了一个仅由纯 HTML 组成的简单组件。

- src
| - components
  | - rocketship
    | - rocketship.ts
    | - rocketship.html
    | - index.ts

使用bit buildtypescript 编译器 ( @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

标签: typescriptnpmaureliabit-src

解决方案


问题是您使用的 Bit 环境有自己的配置,这与您项目中的设置不同。这是因为目前 Bit 带有自己的一组硬编码配置。

以下是对现有 Bit 环境进行分叉和重新配置的建议工作流程:

  1. 使用在其中创建一个新目录和一个空工作区bit init
  2. 导入要修改的环境(但没有 --compiler/tester 标志)
  3. 打开并修改组件的配置文件
  4. 标记新版本的组件并将其导出到您自己的 Scope

现在您拥有自己的编译器和一组修改过的插件。下一步是返回您的项目,并修改bit.json文件以指向新的编译器。之后重新运行bit status以查看所有组件现在都已修改(由于修改了编译器)。使用新编译器标记并导出新版本。


推荐阅读