【问题标题】:Importing something without evaluating the dependencies在不评估依赖项的情况下导入某些东西
【发布时间】:2022-02-16 23:39:50
【问题描述】:

考虑以下文件:

/** myFile.ts **/

import something from 'something';
/** ... other imports here ... **/

export enum statuses = {
  100 = "ok"
  200 = "false"
};

export default class Model {
   ....
}

这是一个虚拟的 ORM 模型,用于后端。现在,我想要实现的是在前端也使用它的一部分(特别是其中的enum)(它有一个完全独立的代码库,有自己的node_modules 和依赖项)但是如果我尝试从这个文件中导入enumsomething 插件依赖项也在被评估和导入,我的代码失败了,因为该依赖项不是前端代码依赖项的一部分。

有什么方法可以在不评估依赖项和代码的其他部分的情况下对 javascript 文件执行导入操作? (已知风险,如果我尝试导入需要这些依赖项的东西,它可能会失败)

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    对于 JavaScript,答案是“不”,我 99% 确定 TypeScript 处理导入时也是如此。

    但很容易解决:将enum 放在自己的模块中:

    statuses.ts:

    export enum statuses = {
      100 = "ok"
      200 = "false"
    };
    

    其他项目可以从那里导入,而不是从myFile.ts

    如果您愿意,您可以通过在myFile.ts 中重新导出它来更新确实使用myFile.ts 的代码来使用该单独的模块:

    export { statuses } from "./path/to/statuses.js";
    

    或者如果您需要在myFile.ts 中使用statuses(您不能使用上述方法):

    import { statuses } from "./path/to/statuses.js";
    export { statuses };
    

    无论哪种方式,执行import Modal, { statuses } from "./myFile.js" 的代码都会继续工作。

    【讨论】:

    • 这是我希望规避的,使用单独的文件作为变量:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多