import('./A');
import('./B');
import('./C');
export class Person {};
A, B
和C
是纯JS(es5)库,使用全局的window
对象并相互依赖。
从输出文件中可以看到,Webpack(awesome-typescript-loader
)会改变模块的顺序,从而导致问题。
如何确保它们以完全相同的顺序包含在输出文件中?
import('./A');
import('./B');
import('./C');
export class Person {};
A, B
和C
是纯JS(es5)库,使用全局的window
对象并相互依赖。
从输出文件中可以看到,Webpack(awesome-typescript-loader
)会改变模块的顺序,从而导致问题。
如何确保它们以完全相同的顺序包含在输出文件中?
正确的答案可能是将您的文件转换为 TypeScript,但这个答案假设您有时间完全将现有的 JS 文件转换为 TS。 如果由于某种原因您没有时间这样做,它们仍应作为部分转换的 TS 文件工作,您只需要采取一些转换快捷方式。
我只建议在现有已知良好的工作 JS 文件上进行此操作,而且只有在您无法花时间进行转换时才建议这样做,这就是为什么我假定您在提问的原因。
将您的 JavaScript *.js 文件内容复制到新的 TypeScript *.ts 文件中。 解决所有的代码检查问题(您可以在 JS 代码的灵活性方面出错) 例如使用
// @ts-ignore
只在必要时使用“any”类型
在新的ts文件中导出其他文件中使用的内容,例如:
export {varible}
通过依赖文件导入那些东西,即:
import {varible} from "./variableFile"
这应该解决您的导入顺序问题。
script-loader
中是正确的,但现在我在运行时得到了[Script Loader] ReferenceError: require is not defined
。 - Petro Karpiuk