我正在尝试在模板项目中使用 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',
我将样本从 tsyringe 移到 globalinit.ts 中,但在加载过程中失败。tsyringe 抱怨 polyfill 未加载。如果我查看生成的 js,看起来 tsyringe 实际上包含在 polyfill 之前。任何想法为什么会发生?
...
import { i as instance } from './index-145b941f.js'; //actually tsyringe
/*"reflect-metadata"*/
var Reflect;