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)也給出了詳細(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({ //自動生成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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Angularjs使用directive自定義指令實現(xiàn)attribute繼承的方法詳解
這篇文章主要介紹了Angularjs使用directive自定義指令實現(xiàn)attribute繼承的方法,結(jié)合實例形式較為詳細(xì)的分析了基于directive自定義指令實現(xiàn)attribute繼承的具體步驟與相關(guān)技巧,需要的朋友可以參考下2016-08-08
Angular4學(xué)習(xí)筆記之實現(xiàn)綁定和分包
本篇文章主要介紹了Angular4學(xué)習(xí)筆記之實現(xiàn)綁定和分包,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
AngularJS service之select下拉菜單效果
這篇文章主要為大家詳細(xì)介紹了AngularJS service之select下拉菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Angular.js通過自定義指令directive實現(xiàn)滑塊滑動效果
這篇文章主要給大家介紹了關(guān)于Angular.js如何通過自定義指令directive實現(xiàn)滑塊滑動的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用angularjs具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-10-10
Angular依賴注入optional?constructor?parameters概念
這篇文章主要為大家介紹了Angular?依賴注入領(lǐng)域里?optional?constructor?parameters?的概念及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Angular項目里ngsw-config.json文件作用詳解
這篇文章主要為大家介紹了Angular項目里ngsw-config.json文件作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
利用Jasmine對Angular進(jìn)行單元測試的方法詳解
單元測試是一種能夠幫助開發(fā)者驗證代碼中某一部分有效性的技術(shù)。下面這篇文章主要給大家介紹了關(guān)于利用Jasmine對Angular進(jìn)行單元測試的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06
AngularJS基礎(chǔ) ng-show 指令簡單示例
本文主要介紹AngularJS ng-show 指令,這里對ng-show 指令的基礎(chǔ)知識做了詳細(xì)介紹,并附有代碼示例,希望能幫助學(xué)習(xí)AngularJS的同學(xué)2016-08-08

