Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs和Webpack-如何导入服务、组件和模块_Angularjs_Webpack_Ecmascript 6_Es6 Modules - Fatal编程技术网

AngularJs和Webpack-如何导入服务、组件和模块

AngularJs和Webpack-如何导入服务、组件和模块,angularjs,webpack,ecmascript-6,es6-modules,Angularjs,Webpack,Ecmascript 6,Es6 Modules,我已经开始在相当大的代码库中使用webpack,并且一直在使用ES6的import语句来加载每个模块所需的依赖项 我的文件结构是基于组件的,所有特定于组件的部分都在该组件的文件夹中。例如,组件文件本身,然后是特定于该组件的模板、样式表、服务、过滤器等。然后,我们可能在该模块中有一个通用服务文件夹,用于非特定于特定组件的服务。例如: - my-module - component-a - component_a.component.js - component_a.compon

我已经开始在相当大的代码库中使用webpack,并且一直在使用ES6的import语句来加载每个模块所需的依赖项

我的文件结构是基于组件的,所有特定于组件的部分都在该组件的文件夹中。例如,组件文件本身,然后是特定于该组件的模板、样式表、服务、过滤器等。然后,我们可能在该模块中有一个通用服务文件夹,用于非特定于特定组件的服务。例如:

- my-module
  - component-a
    - component_a.component.js
    - component_a.component.spec.js
    - component_a.html
    - component_a.scss
  - services
    - some_service.service.js
  main.module.js
  main.run.js
  main.config.js
我的问题是,
main.module.js
文件变得不可维护,因为我手动将所有必需的依赖项导入该文件,然后根据需要将它们注册到angular world中。例如:

import componentA from './component-a/component_a.component';
import someService from './services/some_service.service;

angular
  .module('myModule', [])
  .component('componentA', componentA)
  .service('someService', someService);

你可以想象,当你有10多个组件时,它会变成什么样子。我一直在努力寻找解决这个问题的好办法,有人有什么建议吗?这里有最佳实践方法吗?

我想,每个组件/控制器/服务等都可以在自己的文件中连接到应用程序

就像你有一个文件
ome_service.service.js
,里面写着:

myApp.service('omeService', function(){
    var app = this;
    // service stuff
});
因此注册不是在您的
main.module.js中,而是在每个文件本身中。
不过,您需要公开应用程序变量才能在全球范围内可用。有了像webpack这样的捆绑包,这很容易处理。Gene Conroy Jones在这里写了一篇关于如何通过网页实现这一目标的文章:


通过这种方法,每个新组件将自行处理其注册,并且中央应用程序不必携带所有这些导入。

我猜,每个组件/控制器/服务等都可以在自己的文件中连接到应用程序

就像你有一个文件
ome_service.service.js
,里面写着:

myApp.service('omeService', function(){
    var app = this;
    // service stuff
});
因此注册不是在您的
main.module.js中,而是在每个文件本身中。
不过,您需要公开应用程序变量才能在全球范围内可用。有了像webpack这样的捆绑包,这很容易处理。Gene Conroy Jones在这里写了一篇关于如何通过网页实现这一目标的文章:

通过这种方法,每个新组件都将自行处理注册,而中央应用程序不必携带所有这些导入