代码之家  ›  专栏  ›  技术社区  ›  Jim

webpack-这些导入语句有何不同?

  •  0
  • Jim  · 技术社区  · 7 年前

    假设使用webpack 2和typescript,这些语句之间的区别到底是什么。

    import "moment";
    import "imports-loader?window=>this!moment";
    import "script-loader!moment";
    import * as moment from "moment";
    import { moment } from "moment";
    

    假使 webpack 2 到底发生了什么。。。
    尽管我浏览了(糟糕的)文档,但我还是不太清楚。

    例如,我发现使用 script-loader 似乎使某些库可用于使用导入的其他库 脚本加载器 但是 没有 将其放入其他ES6导入库的全局范围。

    供参考:我的 tsconfig.json 如下所示:

    {
      "compileOnSave": true,
      "compilerOptions": {
        "moduleResolution": "node",
        "target": "es5",
        "sourceMap": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "pretty": true,
        "lib": [ "es6", "dom" ],
        "types": []
      },
      "exclude": [
        "node_modules", "wwwroot/lib", "bower_components"
      ]
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   basarat    7 年前

    三种形式:

    import "moment";
    import * as moment from "moment";
    import { moment } from "moment";
    
    • import "moment";

    导入文件以获得副作用。

    • import * as moment from "moment";

    将完整模块导入到名为 moment

    • import { moment } from "moment";

    导入 已命名 出口 片刻 来自模块 片刻 .

    更多

    阅读ES6导入/模块语法

    网页包

    Webpack还允许您在导入中使用加载程序,例如。

    import "imports-loader?window=>this!moment";
    import "script-loader!moment";
    

    这些都包含在单个装载机文档中,例如。 https://github.com/webpack-contrib/imports-loader

    推荐文章