热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Webpack入门——运用Webpack打包Angular项目的一个例子

(一)什么是WebpackWebpack是一个前端的模块管理东西(modulebundler),以下是webpack的官网:http:webpack.github.io,一进入

(一)什么是Webpack

  Webpack是一个前端的模块管理东西(module bundler),以下是webpack的官网:http://webpack.github.io/,一进入官网能够看到下面这张大图:

《Webpack入门——运用Webpack打包Angular项目的一个例子》

这张图基本上诠释了webpack是用来干吗的,将一些相互依赖的模块(文件),打包成一个或多个js文件,削减http要求次数,提拔机能。这些相互依赖的模块能够是图片、字体、coffee文件、款式文件、less文件等。

  详细怎样用呢?接下来我将用一个例子来申明:

(二)一个Webpack+Angular的例子

1.先看下目次构造

《Webpack入门——运用Webpack打包Angular项目的一个例子》

2.装置Webpack及其他组件

装置Webpack之前发起先装置Node.js,然后采纳npm的体式格局来装置Webpack:

npm install webpack -g

由于要用到angular,所以要装置angular:

npm install angular

还要装置一系列加载器(loader):

npm install style-loader css-loader url-loader sass-loader raw-loader

注重:除了webpack是全局装置以外,其他组件都是装置在app文件夹下面,会自动天生node_modules文件夹。

3.配置文件webpack.config.js

1 module.exports = {
2 context: __dirname + '/app',//上下文
3 entry: './index.js',//进口文件
4 output: {//输出文件
5 path: __dirname + '/app',
6 filename: './bundle.js'
7 },
8 module: {
9 loaders: [//加载器
10 {test: /\.html$/, loader: 'raw'},
11 {test: /\.css$/, loader: 'style!css'},
12 {test: /\.scss$/, loader: 'style!css!sass'},
13 {test: /\.(png|jpg|ttf)$/, loader: 'url?limit=8192'}
14 ]
15 }
16 };

4.进口文件index.js

1 var angular = require('angular');//引入angular
2 var ngModule = angular.module('app',[]);//定义一个angular模块
3 require('./directives/hello-world/hello-world.js')(ngModule);//引入指令(directive)文件
4 require('./css/style.css');//引入款式文件

require用于引入外部模块(能够是对象,能够是函数,能够是css款式,能够是html页面等)

5.主页面index.html

1
2
3
4
5 Angular with Webpacktitle>
6
7
8

Angular + Webpack


9
10
11
12

能够看到主页面是异常清洁清新的,只引入了一个输出文件bundle.js,然后html标签里加了ng-app=”app”。

6.指令文件hello-world.js

1 module.exports = function(ngModule) {
2 ngModule.directive('helloWorld', helloWorldFn);//定义指令,对应页面中的
3 require('./hello-world.scss');
4 function helloWorldFn() {
5 return {
6 restrict: 'E',//元素(element)
7 scope: {},
8 template: require('./hello-world.html'),//模板
9 //templateUrl: 'directives/hello-world/hello-world.html',
10 controllerAs: 'vm',// <=> $scope.vm = {greeting: '你好,我是卡哥'}
11 controller: function () {
12 var vm = this;
13 vm.greeting = '你好,我是卡哥,很愉快见到你';
14 }
15 }
16 }
17 }

module.exports用于将模块(文件)作为一个接口(平常是一个函数)暴露给外部。

7.其他文件(style.css、hello-world.html、hello-world.scss)

1 @font-face{
2 font-family: 'maozedong';
3 src: url(../fonts/maozedong.ttf);
4 }
5 body{
6 background: url(../images/longmao.jpg) yellowgreen;
7 font-size: 24pt;
8 color: #fff;
9 font-family: 'maozedong';
10 }

1


2 {{vm.greeting}}
3

1 .hello-world {
2 color: red;
3 border: 1px solid green;
4 }

8.编译和运转

在敕令行东西中输入:webpack,即可编译,这时候我们会碰到第一个坑:

《Webpack入门——运用Webpack打包Angular项目的一个例子》

这个毛病的症结行在&#8221;You may need an appropriate loader to handle the file type&#8221;,也许意义就是你的加载器(loader)不正确,但是我们明显装置上了一切的加载器啊,也在配置文件中援用了呀,我在网上找了良久都没找到题目所在,厥后照样一名仔细的同事帮我处理这个题目的,本来题目出在配置文件中的&#8221;module&#8221;下的&#8221;loader&#8221;应该是&#8221;loaders&#8221;,就由于少了一个&#8221;s&#8221;,糟蹋我一上午的时候。

修正过来以后,编译经由过程了,我们在浏览器中翻开主页面index.html,这时候碰到了第二个坑:

《Webpack入门——运用Webpack打包Angular项目的一个例子》

也许意义是你跨域了,不能加载hello-world.html这个文件,题目出在指令文件hello-world.js中的援用模板地点的代码:

templateUrl: &#8216;directives/hello-world/hello-world.html&#8217;

在网上搜到一个处理办法,就是运用Node.js自带的的http-server,以下是server.js的代码:

《Webpack入门——运用Webpack打包Angular项目的一个例子》

运用之前要先装置express:npm install express,然后在敕令行东西中输入node server.js开启效劳,这时候在浏览器中输入:localhost:8000/index.html即可接见主页面。

别的一个要领是用require的体式格局引入hello-world.html:

template: require(&#8216;./hello-world.html&#8217;)

(三)补充

(1)编译的敕令&#8221;webpack&#8221;背面能够加参数,如:

&#8220;webpack -p&#8221;示意对打包后的文件举行紧缩

&#8220;webpack -w&#8221;示意及时举行打包更新

&#8220;webpack -d&#8221;示意供应source map,轻易调试

(2)webpack-dev-server能够供应及时看管文件变化的功用,运用之前先装置webpack-dev-server:

npm install webpack-dev-server -g

然后在敕令行中输入:webpack-dev-server &#8211;progress &#8211;colors,显现以下效果:

《Webpack入门——运用Webpack打包Angular项目的一个例子》

这时候在浏览器中输入:localhost:8080(localhost:8080/webpack-dev-server),你对静态资本的任何修改都邑直接反应到主页面中。

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 华美的分割线 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

总结:这是一个Webpack+Angular的典范例子,包含了最基本的打包js文件、css文件、scss文件、图片、字体的要领。经由过程这几天对Webpack的进修,发明有关Webpack的材料确切是异常少的,百度百科和维基百科上甚至都没有这个词条。愿望这篇文章能够协助人人入门。


推荐阅读
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
author-avatar
小炮兵开坦克
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有