“Argument'模块'不是函数,得到了对象” - 使用webpack导入Angular模块

问题描述 投票:0回答:2

我在angular 1.x应用程序中使用webpack和ES6模块。在webpack.config中我设置:

resolve: {
  alias: {
    'angular': 'angular/angular',
    'angularFormly': 'angular-formly/dist/formly',
    'apiCheck': 'api-check/dist/api-check',
    'formlyAngularTemplatesBootstrap': 'angular-formly-templates-bootstrap/dist/angular-formly-templates-bootstrap'
  }
}

module: {
  loaders: [
    { test: /angular/, loader: 'exports-loader?angular' },
    { test: /apiCheck/, loader: '!imports-loader?angular' },
    { test: /angularFormly/, loader: '!imports-loader?angular,apiCheck' },
    { test: /formlyAngularTemplatesBootstrap/, loader: '!imports-loader?angular,angularFormly' },
  ]
}

现在在JS文件中创建模块:

import 'angularFormly';
import 'formlyAngularTemplatesBootstrap';

export const FormlyUtilityModule = angular
  .module('formly-utility', [
    'formly',
    'formlyBootstrap'
  ])
  .name;

不幸的是我收到错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module formly-utility due to:
Error: [$injector:modulerr] Failed to instantiate module formlyBootstrap due to:
Error: [$injector:modulerr] Failed to instantiate module {"version":{"full":"1.5.8","major":1,"minor":5,"dot":8,"codeName":"arbitrary-fallbacks"},"callbacks":{}} due to:
Error: [ng:areq] Argument 'module' is not a function, got Object

任何想法为什么'formlyBootstrap'不起作用?

javascript angularjs webpack es6-modules angular-formly
2个回答
0
投票

也许试试这个:

import formly from 'angularFormly';
import formlyBootstrap from 'formlyAngularTemplatesBootstrap';

export const FormlyUtilityModule = angular
  .module('formly-utility', [
     formly,
     formlyBootstrap
  ])
  .name;

0
投票

你是否尝试过角度形式自述文件的第二种方式?

export const FormlyUtilityModule = angular.module('formly-utility', [
  require('angular-formly'),
  require('angular-formly-templates-bootstrap')
]).name;
© www.soinside.com 2019 - 2024. All rights reserved.