对 stenciljs 使用 globalScript 初始化失败 - 错误的包含顺序

问题描述

我正在尝试在模板项目中使用 DI tsyringe。 对于 tsyringe,它需要在任何代码之前全局加载一些 polyfill 组件。 所以典型的用例如下:

import "reflect-Metadata"; //polyfill 
import {container} from "tsyringe";
import {Foo} from "./foo";

const instance = container.resolve(Foo);

对我来说,在模板项目中进行此类全局初始化的最佳候选者是 globalScript 配置选项。 所以我调整了 stencil.config.ts 如下:

export const config: Config = {
  globalScript: 'src/globalinit.ts',

我从 globalinit.ts 中的 tsyringe 移动了样本,但它在加载过程中失败。 tsyringe 抱怨没有加载 polyfill。 如果我查看生成的 js,看起来 tsyringe 实际上包含在 polyfill 之前。任何想法为什么会发生?

...
import { i as instance } from './index-145b941f.js'; //actually tsyringe  
/*"reflect-Metadata"*/
var Reflect;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)