Angular CLI构建与Serve使用详解

这次给大家带来Angular CLI构建与Serve使用详解,Angular CLI构建与Serve使用的注意事项有哪些,下面就是实战案例,一起来看一下。

Build.

Build主要会做以下动作:

编译项目文件并输出到某个目录

Build targets决定了输出的结果

bundling 打包

生产环境的build还会进行uglify和tree-shaking(把没用的代码去掉)

ng build.

可以先看帮助:

ng build --help

登录后复制

针对开发环境, 就是用命令 ng build.

默认情况下, 它的输出目录在.angular-cli.json文件里ourDir属性配置的, 默认是/dist目录.

build之后会看见dist里面有这些文件:

inline.bundle.js 这是webpack的运行时.

main.bundle.js 就是程序代码.

pollyfills.bundle.js 就是浏览器的Pollyfills.

styles.bundle.js 样式

vendor.bundle.js 是angular和第三方库

可以使用source-map-explorer来分析依赖, 并且查看哪些模块和类在bundle里面.

首先修改上一个例子中的代码:

Angular CLI构建与Serve使用详解

执行ng build:

Angular CLI构建与Serve使用详解

Angular CLI构建与Serve使用详解

可以看到生成了这些文件.

把dist里面的index.html格式化一下看看:

Angular CLI构建与Serve使用详解

可以看到它引用了生成的5个js文件.

打开main.bundle.js可以看到我写的代码:

Angular CLI构建与Serve使用详解

下面运行程序: ng serve -o:

Angular CLI构建与Serve使用详解

可以看到在ng serve的时候, 加载了上述的文件.

因为ng build是开发时的build, 所以没有做任何优化, 文件挺大的.

这时看一下文件目录, 并没有dist目录:

Angular CLI构建与Serve使用详解

那么这些文件是怎么被serve的呢?

这是因为, 这时候webpack是在内存中进行的serve.

下面使用source-map-explorer进行分析, 首先安装它:

npm install --save-dev source-map-explorer

登录后复制

然后执行 ng build, 再执行:

.ode_modules.binsource-map-explorer distmain.bundle.js

登录后复制

结果会生成这个图形:

Angular CLI构建与Serve使用详解

再看看vendor.bundle的情况:

.ode_modules.binsource-map-explorer distendor.bundle.js

登录后复制

Angular CLI构建与Serve使用详解

这里面东西就比较多了.

Build Targets和Environment.

Environment是指采用哪一个环境文件:

Angular CLI构建与Serve使用详解

而Targets则是用来决定项目文件是如何被优化的.

看一下开发和生产build的对比.

ng build

ng build –prod

Environment

environment.ts

environment..prod.ts

缓存

只缓存css里引用的图片

所有build的文件

source maps

生成 

不生成

如何处理css

全局css输出到js文件

生成的是css文件

uglify

Tree-Shaking

不去掉无用代码

去掉无用代码

AOT

Bundling打包

–build-optimizer

是(和AOT以及Angular5)

–named-chunks

–output-hashing

media

所有

下面命令都是针对开发时的build, 它们的作用是一样的:

ng buildng build --devng build --dev -e=devng build --target=development --environment=dev

登录后复制

下面则是生产build:

ng build --prodng build --prod -e=prodng build --target=production --environment=prod

登录后复制

其它常用的参数还有:

–sourcemap -sm 生成source map

–aot Ahead of Time编译

–watch -w Watch并rebuild

–environment -e Build环境

–target -t Build target

–dev 表示dev env和target

–prod 表示prod env和target

Production Build.

先使用–aot:

ng build --aot

登录后复制

Angular CLI构建与Serve使用详解

使用aot之后可以看到 vendor.bundle的大小降了很多, 只有1.5m左右了.

执行aot会去掉一些程序执行不需要的代码, 例如angular的compiler这时就不在build输出的文件里了(可以使用source-map-explorer查看).

试试生产环境:

ng build --prod

登录后复制

Angular CLI构建与Serve使用详解

可以看到所有的文件都非常小了, 并且没有vendor了(因为prod下–build-optimizer起作用所以vendor没有了, 但可以使用–vendor-chunk true给弄出来).

Serve.

ng serve. 已经一直在用了, 下面看看它常用的参数:

–open -o 打开默认浏览器

–port -p 端口

–live-reload -lr 发生变化时重新加载网页(默认开启的)

–ssl 使用https

–proxy-config -pc 代理配置

–prod 在内存中serve 生产模式build的文件

试试 –prod:

ng serve --prod

登录后复制

Angular CLI构建与Serve使用详解

通过文件大小可以看出确实是prod build的.

ng eject.

为项目生成webpack配置和脚本.

执行该命令试试:

Angular CLI构建与Serve使用详解

看看有哪些变化:

.angular-cli.json:

Angular CLI构建与Serve使用详解

package.json:

Angular CLI构建与Serve使用详解

命令脚本都变了

Angular CLI构建与Serve使用详解

还多出来一个webpack.config.js文件:

Angular CLI构建与Serve使用详解

为什么要这么做呢?

可以对项目更深入的配置….

这时运行程序就是 npm start了.

我还是把reject恢复回去吧, 使用git来恢复吧.

如果需要Serve 其他js/css/assets文件:

Angular CLI构建与Serve使用详解

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Angular CLI进行单元测试和E2E测试步骤详解

Vue中computed与methods使用区别

以上就是Angular CLI构建与Serve使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2764908.html

(0)
上一篇 2025年3月8日 10:38:12
下一篇 2025年2月24日 05:35:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Angular CLI生成路由步骤详解

    这次给大家带来Angular CLI生成路由步骤详解,Angular CLI生成路的注意事项有哪些,下面就是实战案例,一起来看一下。 我们知道使用 ng g module admin 将会生成admin module. 而使用 ng g m…

    2025年3月8日 编程技术
    200
  • Angular CLI蓝本生成代码

    这次给大家带来Angular CLI蓝本生成代码,Angular CLI蓝本生成代码的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇文章主要是讲生成 Components, Directive, Service, class, in…

    2025年3月8日 编程技术
    200
  • Vue里调用百度地图步骤详解

    这次给大家带来Vue里调用百度地图步骤详解,Vue里调用百度地图的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue下使用百度地图的简易方法,分享给大家,具体如下: 最近的项目里面,需要用到将具体地址转换成百度坐标系的经纬度,需求比较…

    2025年3月8日
    200
  • Angular Component使用案例详解

    这次给大家带来Angular Component使用案例详解,Angular Component使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Web Component 在介绍Angular Component之前,我们先简单了解…

    编程技术 2025年3月8日
    200
  • JS动画定时器使用详解

    这次给大家带来JS动画定时器使用详解,JS动画定时器使用的注意事项有哪些,下面就是实战案例,一起来看一下。 广义说:一切通过js改变的视觉呈现都叫动画;例如,按钮,链接等元素交互反馈。 狭义说:通过定时器连续调用js函数进行元素属性改变产生…

    2025年3月8日
    200
  • JS事件委托使用详解

    这次给大家带来JS事件委托使用详解,JS事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。 事件委托(也叫事件代理),其实这个问题也简单,要想弄明白事件委托,我们先要把事件冒泡的机制搞清楚。举个事件冒泡的例子: 点击 var u…

    编程技术 2025年3月8日
    200
  • jquery中filter()方法使用详解

    这次给大家带来jquery中filter()方法使用详解,jquery中filter()方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 定义和用法 filter() 方法返回符合一定条件的元素。 该方法让您规定一个条件。不符合条…

    编程技术 2025年3月8日
    200
  • JS回调函数实例详解

    这次给大家带来JS回调函数实例详解,使用JS回调函数的注意事项有哪些,下面就是实战案例,一起来看一下。 在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义: document.getElementById(‘demo…

    编程技术 2025年3月8日
    200
  • JS实现缓存算法步骤详解

    这次给大家带来JS实现缓存算法步骤详解,JS实现缓存算法的注意事项有哪些,下面就是实战案例,一起来看一下。 FIFO 最简单的一种缓存算法,设置缓存上限,当达到了缓存上限的时候,按照先进先出的策略进行淘汰,再增加进新的 k-v 。 使用了一…

    编程技术 2025年3月8日
    200
  • 封装插件swiper使用详解

    这次给大家带来封装插件swiper使用详解,使用封装插件swiper的注意事项有哪些,下面就是实战案例,一起来看一下。 首先创建简单的react-native项目,创建一个文件夹。然后用命令符输入 react-native init swi…

    2025年3月8日
    200

发表回复

登录后才能评论