- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- angular+webpack2的示例分析
這篇文章主要介紹了angular+webpack2的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著(zhù)大家一起了解一下。
webpack出了中文版以后,對于我們這些英語(yǔ)不是很好的來(lái)說(shuō)真的是太棒了,話(huà)說(shuō)angularjs啥時(shí)候也出個(gè)中文文檔就更好了,webpack官網(wǎng):https://doc.webpack-china.org/
右上角可以選擇語(yǔ)言。
開(kāi)始之前先看一下目錄文件:
第一步:
首先要使用webpack需要先安裝webpack,官網(wǎng)給出了好幾中安裝方式,就不多說(shuō)了:
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({ //自動(dòng)生成Html template:'./app/view/index.html', filename:'../app/index.html', inject:'body' }) ] }; module.exports = config;
這里需要說(shuō)的是entry: './app/app.js'
是入口文件,所有的 js代碼都通過(guò)入口文件加載,我這里就只用了 app.js ,但是也可以設置多個(gè)入口文件。
output:
設置輸出的路徑和文件,這里我是將所有的 js 壓縮到了bundle.js中,這里也是可以設置壓縮到多個(gè)文件的,文件后面我設置了 hash 值主要考慮瀏覽器緩存問(wèn)題,module: 就是配置js css html 打包壓縮的規則,這里寫(xiě)法和 webpack1x 有較大差異,還需注意。
plugins:
插件,webpack 有很多內置插件,HtmlWebpackPlugin 是動(dòng)態(tài)生成html的一個(gè)內置插件,主要的作用是可以動(dòng)態(tài)的把壓縮后帶有 hash 值的js動(dòng)態(tài)插入到 html 中。
配置就暫時(shí)說(shuō)到這里,然后再看看我們的入口文件,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依賴(lài)文件引入,然后把angular的路由和邏輯處理的js引入,方便前端模塊化編程,注視比較清晰就不多說(shuō)了。單獨的js模塊直接按照原來(lái)的寫(xiě)就ok了 區別就是在最外層寫(xiě)一個(gè)module.exports = function(ngModule){}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站