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

使用webpack从angularjs模块加载特定指令

  •  5
  • IsraGab  · 技术社区  · 6 年前

    我目前正在重构我的angularjs应用程序,以便使用webpack和lazyloading。

    我想 仅从angularjs模块加载一条指令 ,而不是将整个模块加载到 防止生成捆绑包中未使用的代码

    有没有可能, 有细微变化 ?

    类似于

    import {MyDirective} from './my-module.js';
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   xdeepakv    6 年前

    考虑到您使用的是es6/es2015语法(babel/ts节点)。您的模块必须导出方法,才能像导入一样使用它。 使用导出语法:

    // My module 
    export { cube, foo, graph };
    // Importing
    import {cube } from './mymodule'
    

    https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export

    然而,像这样导出指令是可行的。您需要创建一个指令函数,并在模块中重用该函数,同时导出。请参见下面的示例

    // Directive function
    angular.module([]).directive('myCustomer', MyCustomDirective);
    
    function MyCustomDirective() {
      return {
        restrict: 'E',
        scope: {
          customerInfo: '=info'
        },
        template: '<template>something here</template>'
      };
    }
    
    export {MyCustomDirective}