柏林家政网站重构项目(一)

柏林家政网站重构项目(一)

第一部分

一、技术选型:
前台:
1.webpack4.x 2.git 3.jquery2.1.4版本
后台:
1.vue.js
二、目录结构设计:
src(代码编写文件夹,目标文件)====>其下属文件有:

page+view
service
util
image

最后都会打包到dist文件夹,不需要手工去维护===>其下属文件:

view
js
css
resource

三,项目搭建:
1.git创建仓库,然后用 git clone克隆到本地
2.创建.gitignore文件,写上内容:

.DS_Store
/node_modules/
/dist/

3.使用git add 此命令可将该文件添加到缓存
4.$ git commit -m ‘gitigoner文件提交’
5.一般来说我们都不是在主分支开发,因此我们需要建立一个分支来进行业务逻辑的开发
命令使用:git checkout -b bolinjz_v1.0 (意思是切换并创建分支)再用git branch 查看分支带*号的表示当前所处分支。
四、手脚架的搭建:
1.npm 初始化 npm init
2.全局安装 webpack
我选用的webpack版本为最新的4.10.2,主要是我也不知道怎么选版本号,webpack4版本之前的我没学过,所以索性就下最新版的算了。
3.首先是在项目根目录

  • –创建webpack.config.js
    –然后对webpack进行配置,先是对入口文件和出口文件进行配置
const path = require('path');
module.exports = {
    mode: 'development',
    entry: {
        'index':['./src/page/index/index.js'],
        'login':['./src/page/login/index.js']//多入口配置
    },
    output: {
        filename: '[name].js',
        path: __dirname + '/dist/js'
    }
}//详细介绍请看官方文档,挺详细的
  • –对脚本的处理
    a、对jqure的引入,在webpack3.x的版本,jq的引入还是挺麻烦的,但是在webpac4.x这一现状得到改变,在webpack.config.js增加配置后如下(本来我是准备省略部分代码的,不过我这个是新生教程项目,所以我就还是不省略了,怕有小白看不懂,没法跑出项目的效果):
var webpack = require('webpack')
const path = require('path');


module.exports = {
    mode: 'development',
    entry: {
        'index':['./src/page/index/index.js'],
        'login':['./src/page/login/index.js']
    },
    output: {
        filename: 'js/[name].js',
        path: __dirname + '/dist'
    },
    plugins: [ 
    new webpack.ProvidePlugin({ 
          $:"jquery", 
          jQuery:"jquery", 
          "windows.jQuery":"jquery"
        }) 
    ],
}

然后就在入口的js文件引入jq即可,代码如下:

import $ from 'jquery'

更简单的配置方式就是在index.html中用< script >引入jq。
--b、loader的配置

  • 安装css-loader、style-loader、file-loader
  • 安装命令:
npm install style-loader css-loader -D
npm install file-loader -D

– 然后是在webpack.config.js中配置

module.exports = {
    mode: 'development',
    entry: {
        'common':['./src/page/common/index.js'],
        'index':['./src/page/index/index.js'],
        'login':['./src/page/login/index.js']
    },
    output: {
        filename: 'js/[name].js',
        path: __dirname + '/dist'
    },
    module: {
        rules: [
          { test: /\.css$/, use:['style-loader','css-loader'] },
          { test: /(\.jpg|\.png|\.jpeg|\.gif)$/, use:['file-loader']},
          { test: /\.(woff|ttf|svg|eot|xttf|woff5)$/, use:'file-loader?limit=1024&name=./fonts/[name].[ext]'},
        ]
    },//loader的配置
    plugins: [ 
    new webpack.ProvidePlugin({ 
          $:"jquery", 
          jQuery:"jquery", 
          "windows.jQuery":"jquery"
        }) 
    ],
}

然后是安装 html-withimg-loader 来支持 打包的html支持图片
安装命令:npm install html-withimg-loader -D
配置就是在moudle下再加个正则匹配:

{ test:/\.html$/,use:'html-withimg-loader'}

4.plugin

1.安装 html-webpack-plugin 这个插件是打包HTML文件
  安装命令:npm install html-webpack-plugin -D(S)
2.配置html-webpack-plugin
  第一步:引入html-webpack-plugin== >const HtmlWebpackPlugin = require('html-webpack-plugin');
  第二步:配置
          plugins: [
              //new webpack.optimize.UglifyJsPlugin(),
              new HtmlWebpackPlugin({
                  template: './src/index.html',
                  filename: 'a.html'//改html的输出文件名index.html改为了a.hmtl,
                  minify:{
                      removeAttributeQuotes:true,//去除引号
                      removeComments:true//去除注释
                      removeEmptyAttributes:true//去除空属性
                      collapseWhitespace:true//去除空格
                  }
              })
          ]
3.css提取
插件下载:npm intall extract-text-webpack-plugin@next -D(s);
引入:const ExtractTextPlugin = require("extract-text-webpack-plugin")
然后对css-loader和style-loader进行改造:
......
    module: {
        rules: [
            //{ test: /\.css$/, use:['style-loader','css-loader'] },
            { test: /\.css$/, use:ExtractTextPlugin.extract({
                fallback:'style-loader',
                use:[{
                    loader:'css-loader?name=./css/[name].[ext]',
                    options:{
                        minimize:true,//代码压缩
                    }
                }],
                publicPath: "../"
              })
            },
            { test: /(\.jpg|\.png|\.jpeg|\.gif)$/, use:['file-loader']},
            { test: /\.(woff|ttf|svg|eot|xttf|woff5)$/, use:'file-loader?limit=1024&name=./fonts/[name].[ext]'},
            { test:/\.html$/,use:'html-withimg-loader'}
        ]
    },
......

这样之就能把css单独打包在dist的css文件夹。

猜你喜欢

转载自blog.csdn.net/tangjie109411/article/details/80524738
今日推荐