webpack前端构建angular1.0


Webpack最近很热,用webapcak构建react,vue,angular2.0的文章很多,但是webpack构建angualr1.0的文章找来找去也没有一篇让我感觉到很满意的,好多都运行报错,所以我参考了几篇文章,写一篇webpack前端构建angular1.0的文章指南。本文适合第一次接触webpack的朋友,如果是老鸟,就不用看了。


安装

  1. 先装好node和npm,因为webpack是一个基于node的项目。然后查看node是否安装成功:

    node -v && npm -v

  2. 全局安装webpack
    npm install -g webpack
    查看webpack是否安装成功:
    npm -v

  3. webpack中文社区:
    https://doc.webpack-china.org/

建立项目

建一个文件夹,然后新建一个package.json的文件在项目根目录下

mkdir webpackAngular
cd webpackAngular
npm init

项目结构

现在项目里面就有一个package.json, 我们多加一点东西,慢慢丰富它的内容。

添加index.html文件

<!DOCTYPE html>
<html ng-app="app">
<head lang="en">
<meta charset="UTF-8">
<title>webpackAngular</title>
</head>
<body>
<h1>webpack + Angular </h1>
<hello-world></hello-world>
<script src="/build/main.js"></script>
</body>
</html>

添加webpack.config.js文件,添加了最重要的webpack的配置文件,我们还是从非常简单的hello world开始玩起,webpack原生直接支持AMD和CommonJS两种格式,如果你想使用ES6的风格,这点以后再提。

webpack.config.js

var webpack = require("webpack");
var path = require("path");
var OpenBrowserPlugin = require('open-browser-webpack-plugin');
module.exports = {
//上下文
context: __dirname + '/app',
//入口文件
entry: './app.js',
//输出文件
output: {
path: __dirname + '/build',
filename: '[name].js'
}, module: {
loaders: [
{
test: /\.css$/,
loader: ['style-loader', 'css-loader']
}
]
}, //自动启动浏览器
plugins: [
new OpenBrowserPlugin({ url: 'http://localhost:8080' })
]
};

添加app.js

//引入angular
var angular = require('angular');
//定义一个angular模块
var ngModule = angular.module('app',[]);
//引入指令文件
require('./helloWorld/helloWorld.js')(ngModule);
//引入样式文件
require('./css/style.css');

添加style.css

.ing{
height: 48px;
position: relative;
top:30%;
left: 40%;
background-image:url('/app/images/loader.gif');
background-repeat: no-repeat;
font-size: 24px;
color: #000;
} .hello-world {
color: red;
border: 1px solid green;
}

添加helloWorld.html

<div class="ing"></div>
<div class="hello-world">
<span ng-bind="vm.greeting"></span>
</div>

添加helloWorld.js

module.exports = function(ngModule) {
//定义指令,对应页面中的<hello-world></hello-world>
ngModule.directive('helloWorld', helloWorldFn);
function helloWorldFn() {
return {
//元素(element)
restrict: 'E',
scope: {},
templateUrl: '/app/helloWorld/helloWorld.html',
controllerAs: 'vm',
controller: function () {
var vm = this;
console.log('this',this);
vm.greeting = '你好,我是Alan,很高兴见到你!';
}
}
}
}

安装依赖文件

sudo npm isntall angular --save-dev
sudo npm isntall css-loader --save-dev
sudo npm isntall style-loade --save-dev
sudo npm isntall express --save-dev
sudo npm isntall open-browser-webpack-plugin --save-dev
sudo npm isntall webpack --save-dev
sudo npm isntall webpack-dev-server --save-dev

自动保存package.json文件,如果直接复制package.json文件执行下面命令:
sudo npm install

webpack编译文件

sudo npm run build

会自动生成buid文件夹压缩js文件

webpack自动启动浏览器访问idnex.html

sudo npm run dev

也可以在浏览器直接访问:
http://localhost:8080/

见证奇迹的时候到了,然后神奇的发现:

最后恭喜你用webpack构建angular1.0成功了!!!
如果有什么疑问欢迎留言。。。
大神勿喷,感谢手下留情~~~

最新文章

  1. 为什么 C++ 中成员函数指针是 16 字节?
  2. P2特征(一)
  3. 个人对Java中多态的一些简单理解
  4. python 中x%2 x&amp;1 判断偶数奇数 性能对比
  5. ubuntu add application to launcher
  6. JavaScript - 引用类型
  7. Splunk - 如何在WebFramework之CORS模式下你的网站和splunk web进行交互
  8. [办公自动化]windows7 仿宋GB2312字体打印不对
  9. 代理和block反向传值
  10. MySql5.7-多源复制(多主单从)
  11. Docker-数据卷和数据容器卷
  12. mysql 密码过期问题 password_expired
  13. hdu 4465 Candy(2012 ACM-ICPC 成都现场赛)
  14. 【Quartz】常用方法的使用方式(三)
  15. Spring系列之DI的原理及手动实现
  16. Fetch请求后台的数据
  17. oldboy s21day02
  18. Access导出excel
  19. windows 文件/文件夹操作
  20. hdu1242 Rescue(BFS +优先队列 or BFS )

热门文章

  1. 微信网页授权,获取微信code,获取access_tocken,获取用户信息
  2. 剑指Offer系列之题1~题5
  3. (js描述的)数据结构[树结构之红黑树](13)
  4. Linux网络安全篇,进入SELinux的世界(一)
  5. 《闲扯Redis四》List数据类型底层编码转换
  6. spark下载安装,运行examples(spark一)
  7. csdn的垃圾体验
  8. tf.nn.max_pool 池化
  9. 数据结构和算法(Golang实现)(22)排序算法-希尔排序
  10. JS 的事件基础、事件侦听与抛发、