使用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 保存文件到本地实现方法
Nov 29 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
深入理解JS中的substr和substring
Apr 26 Javascript
javascript基本语法
May 31 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
jQuery 判断是否包含在数组中Array[]的方法
Aug 03 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
May 12 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
对python sklearn one-hot编码详解
2018/07/10 Python
Python之列表实现栈的工作功能
2019/01/28 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
养殖项目策划书范文
2014/01/13 职场文书
品质主管岗位职责
2014/03/16 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
初中学校对照检查材料
2014/08/19 职场文书
收费员岗位职责
2015/02/14 职场文书
销售开票员岗位职责
2015/04/15 职场文书
小学运动会加油词
2015/07/18 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
php实例化对象的实例方法
2021/11/17 PHP
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js