zoukankan      html  css  js  c++  java
  • angular

    用一周多的时间做了一个简易的wap站

    之前研究过webpack但是一直没用过,这次公司要做一个h5网站,正好拿来练练手,话说angular1x对移动端不是很友好,但主要是angular1x比较熟悉,上手快,开发也快,就没去考虑其他前端mvc框架。

    好了webpack出了中文版以后,对于我们这些英语不是很好的来说真的是太棒了,话说angularjs啥时候也出个中文文档就更好了,webpack官网:https://doc.webpack-china.org/
    右上角可以选择语言。

    开始之前先看一下目录文件:

    项目文件目录.png

    第一步:
    首先要使用webpack需要先安装webpack,官网给出了好几中安装方式,就不多说了:

    npm install --global webpack
    

    因为我用的是webpack2 所以需要注意版本1x 到 2x 的配置差异,这里官网也给出了详细差异: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 ,但是也可以设置多个入口文件。

    output: 设置输出的路径和文件,这里我是将所有的 js 压缩到了bundle.js中,这里也是可以设置压缩到多个文件的,文件后面我设置了 hash 值主要考虑浏览器缓存问题, module: 就是配置js css html 打包压缩的规则,这里写法和 webpack1x 有较大差异,还需注意。

    plugins: 插件,webpack 有很多内置插件,HtmlWebpackPlugin  是动态生成html的一个内置插件,主要的作用是可以动态的把压缩后带有 hash 值的js动态插入到 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']); // 创建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了 区别就是在最外层写一个 module.exports = function(ngModule){}

    项目代码:https://github.com/wangbaogui123/angular-webpack2.git
    微博:王小杰wbg

    奔跑的工程师
  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/wbg21521/p/6889585.html
Copyright © 2011-2022 走看看