使用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设计模式之观察者模式(推荐)
Mar 29 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
JS之相等操作符详解
Sep 13 Javascript
react-native 封装选择弹出框示例(试用ios&android)
Jul 11 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
angularjs 页面自适应高度的方法
Jan 17 Javascript
js实现一个简易计算器
Mar 30 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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
加强版phplib的DB类
2008/03/31 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php伪静态之APACHE篇
2014/06/02 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
微信小程序 video详解及简单实例
2017/01/16 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
高等教育专业自荐信范文
2014/03/26 职场文书
抽样调查项目计划书
2014/04/24 职场文书
1亿有多大教学反思
2014/05/01 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
平安建设汇报材料
2014/12/29 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python