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字符串的探究
    类加载器操作三原则[译]
    Android小游戏:功夫蛇 团队开发经验总结
    octopress第三方插件:博文同步工具syncPost
    PAT 1061
    关于软件工程的一些看法
    Python3+Selenium2完整的自动化测试实现之旅(三):Selenium-webdriver提供的元素定位方法
    Python3+Selenium2完整的自动化测试实现之旅(二):IE和Chrome浏览器驱动配置
    Python3+Selenium2完整的自动化测试实现之旅(一):自动化测试环境搭建
    Python使用WMI模块获取Windows系统的硬件信息,并使用pyinstaller库编译打包成exe的可执行文件
  • 原文地址:https://www.cnblogs.com/wbg21521/p/6889585.html
Copyright © 2011-2022 走看看