2

我一直在尝试使用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
4

2 回答 2

1

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

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

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

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

于 2018-11-13T08:57:41.643 回答
1

当前的打字稿编译器正在使用硬编码配置,假设您使用的是:https ://bitsrc.io/bit/envs/compilers/typescript/code 如果您想配置,compilerOptions您将需要分叉组件并配置它你想要的方式。

Fork 意味着导入组件、进行更改、标记和导出到新范围。

于 2018-11-12T14:47:08.100 回答