用一周多的時(shí)間做了一個(gè)簡易的wap站
之前研究過webpack但是一直沒用過档礁,這次公司要做一個(gè)h5網(wǎng)站,正好拿來練練手埋涧,話說angular1x對移動(dòng)端不是很友好垄潮,但主要是angular1x比較熟悉,上手快章咧,開發(fā)也快倦西,就沒去考慮其他前端mvc框架。
好了webpack出了中文版以后赁严,對于我們這些英語不是很好的來說真的是太棒了扰柠,話說angularjs啥時(shí)候也出個(gè)中文文檔就更好了,webpack官網(wǎng):https://doc.webpack-china.org/
右上角可以選擇語言疼约。
開始之前先看一下目錄文件:
第一步:
首先要使用webpack需要先安裝webpack卤档,官網(wǎng)給出了好幾中安裝方式,就不多說了:
npm install --global webpack
因?yàn)槲矣玫氖莣ebpack2 所以需要注意版本1x 到 2x 的配置差異忆谓,這里官網(wǎng)也給出了詳細(xì)差異:https://doc.webpack-china.org/guides/migrating/
第二步webapck配置webpack.config.js:
const webpack = require('webpack'); //to access built-in plugins
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const config = {
entry: './app/app.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle-[chunkhash].js',
publicPath: "/mobile/dist/"
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
use: 'babel-loader'
},
{
test: /\.css$/,
use: ['style-loader','css-loader']
},
{
test: /\.(png|jpg|jpeg|gif|woff)$/,
use: 'url-loader?limit=4192&name=[name].[ext]'
},
]
},
plugins:[
new HtmlWebpackPlugin({ //自動(dòng)生成Html
template:'./app/view/index.html',
filename:'../app/index.html',
inject:'body'
})
]
};
module.exports = config;
這里需要說的是
entry: './app/app.js'
是入口文件裆装,所有的 js
代碼都通過入口文件加載踱承,我這里就只用了 app.js
倡缠,但是也可以設(shè)置多個(gè)入口文件。
output:
設(shè)置輸出的路徑和文件茎活,這里我是將所有的 js
壓縮到了bundle.js
中昙沦,這里也是可以設(shè)置壓縮到多個(gè)文件的,文件后面我設(shè)置了 hash
值主要考慮瀏覽器緩存問題载荔,module:
就是配置js css html 打包壓縮的規(guī)則盾饮,這里寫法和 webpack1x
有較大差異,還需注意。
plugins:
插件丘损,webpack
有很多內(nèi)置插件普办,HtmlWebpackPlugin
是動(dòng)態(tài)生成html的一個(gè)內(nèi)置插件,主要的作用是可以動(dòng)態(tài)的把壓縮后帶有 hash
值的js
動(dòng)態(tài)插入到 html
中徘钥。
配置就暫時(shí)說到這里衔蹲,然后再看看我們的入口文件,app.js呈础,
var angular = require('angular');// 引入angular
var urlRouterProvider = require('angular-ui-router');
var uiLoad = require('angular-ui-load');
var $jq = require('jquery');
var animate = require('angular-animate');
var ngModule = angular.module('app',['ui.router','ui.load','ngAnimate']); // 創(chuàng)建app
require('./factory.js')(ngModule,$jq);// 公共方法封裝
require('./route.js')(ngModule);// 引入路由文件
require('./directives.js')(ngModule,$jq);// 組件
require('./controller.js')(ngModule);// 控制器
require('./css/style.css');// 引入樣式文件
這里主要把js
依賴文件引入舆驶,然后把angular
的路由和邏輯處理的js
引入,方便前端模塊化編程而钞,注視比較清晰就不多說了沙廉。單獨(dú)的js
模塊直接按照原來的寫就ok了 區(qū)別就是在最外層寫一個(gè)module.exports = function(ngModule){}
項(xiàng)目代碼:https://github.com/wangbaogui123/angular-webpack2.git
微博:王小杰wbg
? 著作權(quán)歸作者所有
文/奔跑的攻城獅(簡書作者)
原文鏈接:http://www.reibang.com/p/8c102411e774
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)臼节,并標(biāo)注“簡書作者”撬陵。