使用angular-cli webpack创建多个包的方法


Posted in Javascript onOctober 16, 2018

当我使用angular-cli构建项目时,它会将所有项目文件捆绑到一个主要的主包中.

我在应用程序中使用了懒惰路由,一旦应用程序加载,我就可以导航.

有没有一种方法可以将主包分为多个基于懒惰加载的路由模块的文件?

下面是角度-cli.json中的配置

{
 "project": {
  "version": "1.0.0-beta.15",
  "name": "maddy-test-project"
 },
 "apps": [
  {
   "root": "src",
   "outDir": "dist",
   "assets": "styles/content",
   "index": "default.htm",
   "main": "main.ts",
   "test": "test.ts",
   "tsconfig": "tsconfig.json",
   "prefix": "",
   "mobile": false,
   "styles": [
    "styles.less"
   ],
   "scripts": [
    "styles/wfa-myriad-pro-typekit.js"
   ],
   "environments": {
    "source": "environments/environment.ts",
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
   }
  }
 ],
 "addons": [],
 "packages": [],
 "e2e": {
  "protractor": {
   "config": "./protractor.conf.js"
  }
 },
 "test": {
  "karma": {
   "config": "./karma.conf.js"
  }
 },
 "defaults": {
  "styleExt": "less",
  "prefixInterfaces": false
 }
}

下面是package.json

{
 "name": "maddy-test-project",
 "version": "0.0.1",
 "license": "MIT",
 "angular-cli": {},
 "scripts": {
  "start": "ng serve",
  "lint": "tslint \"src/**/*.ts\"",
  "test": "ng test",
  "pree2e": "webdriver-manager update",
  "e2e": "protractor"
 },
 "private": true,
 "dependencies": {
  "@angular/common": "2.0.0",
  "@angular/compiler": "2.0.0",
  "@angular/core": "2.0.0",
  "@angular/forms": "2.0.0",
  "@angular/http": "2.0.0",
  "@angular/platform-browser": "2.0.0",
  "@angular/platform-browser-dynamic": "2.0.0",
  "@angular/router": "3.0.0",
  "d3": "^4.2.3",
  "jquery": "^3.1.0",
  "lodash": "^4.15.0",
  "moment": "^2.15.0",
  "core-js": "^2.4.1",
  "rxjs": "5.0.0-beta.12",
  "toastr": "^2.1.2",
  "ts-helpers": "^1.1.1",
  "zone.js": "^0.6.23", 
  "bootstrap-daterangepicker": "^2.1.24"
 },
 "devDependencies": {
  "@types/d3": "^3.5.35",
  "@types/google-maps": "^3.1.27",
  "@types/jasmine": "^2.2.30",
  "@types/jquery": "^1.10.31",
  "@types/lodash": "^4.14.34",
  "@types/toastr": "^2.1.29",
  "angular-cli": "1.0.0-beta.15",
  "codelyzer": "~0.0.26",
  "jasmine-core": "2.4.1",
  "jasmine-spec-reporter": "2.5.0",
  "karma": "1.2.0",
  "karma-chrome-launcher": "^2.0.0",
  "karma-cli": "^1.0.1",
  "karma-jasmine": "^1.0.2",
  "karma-remap-istanbul": "^0.2.1",
  "protractor": "4.0.5",
  "ts-node": "1.2.1",
  "tslint": "3.13.0",
  "typescript": "2.0.2"
 }
}

提前致谢!!

它是NgModule和RouterModule.forChild()的作用.这是一个非常好的文章,用于启动大型角度2模块化应用开发: http://blog.angular-university.io/angular2-ngmodule/

The first thing that we need to do is to remove every mention of the Home component or the HomeModule from the App component and the main routing configuration:
We can see here that the App component no longer imports HomeModule, instead the routing config uses loadChildren to say that if /home or any other url starting with it gets hit, then the file home.module should be loaded via an Ajax call.

很快,为了在一个懒惰模块中移动一些逻辑和组件,您可以运行以下命令:

ng g module child --routing

然后angular-cli将生成一个NgModule(app / child / child.module.ts)和一个子路由器配置(app / child / child-routing.module.ts).

延迟加载此子路由器的路由将是:

{ path: 'child', loadChildren: 'app/child/child.module#ChildModule' }

最后用一个约束移动你想要的ChildModule:其他模块(作为AppModule)将无法使用任何ChildModule依赖项(例如服务).如果你需要它,一个很好的做法是创建一个共享模块.

http://stackoverflow.com/questions/39619003/creating-multiple-bundles-using-angular-cli-webpack

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在JavaScript中typeof的用途介绍
Apr 11 Javascript
JavaScript中DOM详解
Apr 13 Javascript
页面内容排序插件jSort使用方法
Oct 10 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
bootstrap table表格客户端分页实例
Aug 07 Javascript
JavaScript实现一个简易的计算器实例代码
May 10 Javascript
vue v-model动态生成详解
Jun 30 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 Javascript
Vue通过WebSocket建立长连接的实现代码
Nov 05 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
详解JavaScript中的this指向问题
Feb 05 Javascript
element-ui的回调函数Events的用法详解
Oct 16 #Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 #Javascript
Postman的下载及安装教程详解
Oct 16 #Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 #Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 #Javascript
iView框架问题整理小结
Oct 16 #Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
Oct 16 #Javascript
You might like
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
php格式化日期实例分析
2014/11/12 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
django实现类似触发器的功能
2019/11/15 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
python 实现Harris角点检测算法
2020/12/11 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
总监职责范文
2013/11/09 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
2015年大学生实习评语
2015/03/25 职场文书
小学教师岗位职责
2015/04/02 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
基于Redission的分布式锁实战
2022/08/14 Redis