angular+webpack2實戰(zhàn)例子
之前研究過webpack但是一直沒用過,這次公司要做一個h5網(wǎng)站,正好拿來練練手,話說angular1x對移動端不是很友好,但主要是angular1x比較熟悉,上手快,開發(fā)也快,就沒去考慮其他前端mvc框架。
好了webpack出了中文版以后,對于我們這些英語不是很好的來說真的是太棒了,話說angularjs啥時候也出個中文文檔就更好了,webpack官網(wǎng):https://doc.webpack-china.org/
右上角可以選擇語言。
開始之前先看一下目錄文件:
第一步:
首先要使用webpack需要先安裝webpack,官網(wǎng)給出了好幾中安裝方式,就不多說了:
npm install --global webpack
因為我用的是webpack2 所以需要注意版本1x 到 2x 的配置差異,這里官網(wǎng)也給出了詳細差異: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({ //自動生成Html template:'./app/view/index.html', filename:'../app/index.html', inject:'body' }) ] }; module.exports = config;
這里需要說的是entry: './app/app.js'
是入口文件,所有的 js代碼都通過入口文件加載,我這里就只用了 app.js ,但是也可以設(shè)置多個入口文件。
output:
設(shè)置輸出的路徑和文件,這里我是將所有的 js 壓縮到了bundle.js中,這里也是可以設(shè)置壓縮到多個文件的,文件后面我設(shè)置了 hash 值主要考慮瀏覽器緩存問題,module: 就是配置js css html 打包壓縮的規(guī)則,這里寫法和 webpack1x 有較大差異,還需注意。
plugins:
插件,webpack 有很多內(nèi)置插件,HtmlWebpackPlugin 是動態(tài)生成html的一個內(nèi)置插件,主要的作用是可以動態(tài)的把壓縮后帶有 hash 值的js動態(tài)插入到 html 中。
配置就暫時說到這里,然后再看看我們的入口文件,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引入,方便前端模塊化編程,注視比較清晰就不多說了。單獨的js模塊直接按照原來的寫就ok了 區(qū)別就是在最外層寫一個module.exports = function(ngModule){}
項目代碼:https://github.com/wangbaogui123/angular-webpack2.git
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
AngularJS實現(xiàn)select的ng-options功能示例
這篇文章主要介紹了AngularJS實現(xiàn)select的ng-options功能,結(jié)合實例形式分析了AngularJS使用ng-options操作select列表的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07Angular.js與Bootstrap相結(jié)合實現(xiàn)表格分頁代碼
最近一直在學習angularjs相關(guān)知識,在學習過程中寫了一個小demo,下面把代碼思路分享給大家,感興趣的朋友一起學習2016-04-04AnjularJS中$scope和$rootScope的區(qū)別小結(jié)
這篇文章給大家整理了關(guān)于AnjularJS中$scope和$rootScope的區(qū)別,文中運用實例代碼介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-09-09深入學習AngularJS中數(shù)據(jù)的雙向綁定機制
這篇文章主要介紹了AngularJS中數(shù)據(jù)的雙向綁定機制,雙向綁定使得HTML中呈現(xiàn)的view與AngularJS中的數(shù)據(jù)一致,是Angular的重要特性之一,需要的朋友可以參考下2016-03-03