webpack

webpack构建项目步骤

  1. npm init -y

  2. npm install webpack --save-dev

  3. 配置package.json

     "scripts": {
         "dev": "node build/dev-server.js",
         "start": "node build/dev-server.js",
         "build": "node build/build.js"
     }
    

    就是npm可以执行的方法,npm run dev/start/build,内部就执行了webpack的编译

    配置热更新
    npm install webpack webpack-dev-server --save-dev

     "scripts": {
         "test": "echo \"Error: no test specified\" && exit 1",
         "start":"webpack-dev-server --env development",//wds就是热更新的配置
         "build":"webpack --env production"
       },//start和build后面的是环境变量,env development是一个开发的环境,env production就是真实的环境,也就是放在服务器上面的打包后的文件
    
  4. 配置css的解析
    安装解析css所需有的依赖
    npm install --save-dev style-loader css-loader
    在webpack.config.js里面配置好module文件

     module:{
             rules:[
                 {
                     test:/\.css$/,
                     use:[
                         "style-loader",
                         "css-loader"
                     ]
                 }
             ]
         }
    

    然后要在index.js里面import"./style.css"就是需要的文件

  5. 配置图片的解析
    一样是首先安装解析图片的依赖
    npm install --save-dev file-loader

webpack.config.js

module.exports ={
    devServer:{
        host:process.env.HOST,//设置访问的ip地址,process.env.HOST就是本地的地址
        port:8080  //设置访问的端口号
    },
    entry:{
        app: PATHS.app
    },
    output:{
        path:PATHS.build,
        filename:"[name].js"
    },
    plugins:[
        new HtmlWebpackPlugin({
            title:"Webpack demo"
        })
    ],
    
    module:{
        rules:[
            {
                test:/\.css$/,
                use:[
                    "style-loader",
                    "css-loader"
                ]
            },
            {
                test:/\.(png|svg|jpg|gif)/,
                use:[
                    "file-loader"
                ]
            }
        ]
    }
}

一个webpack.config.js文件里面有很多配置的选项,现在一个个来解释一下有什么用

  1. module
    这些选项决定了如何处理项目中的不同类型的模块。
    加载css:
    要先npm install --save-dev style-loader css-loader

         {
           test: /\.css$/,  // 利用正则获取所有css结尾的文件
           use: [
             'style-loader', //使用安装的组件解析
             'css-loader'  
           ]
         }
    

加载图片:
要先npm install --save-dev file-loader

            {
              test: /\.(png|svg|jpg|gif)$/,
              use: [
                'file-loader'
              ]
            }

加载字体文件:
直接利用 file-loader去加载就可以了

          test: /\.(woff|woff2|eot|ttf|otf)$/,
              use: [
                'file-loader'
              ]
            }

2.plugins
使用的一些插件

HtmlWebpackPlugin:
作用是自动把解析的文件添加到index里面

        plugins: [
          new HtmlWebpackPlugin({
            title: 'Output Management'
          })
        ]

clean-webpack-plugin:
作用是每次run都会清理dist里面的东西

    plugins: [
        new CleanWebpackPlugin(['dist'])
    ]

resolve里面的alias就是一些别名的配置,就是设置一些绝对路径,然后以后要用到common或者components路径的文件的时候,不需要写相对路径了,变成了一个绝对路径了

    resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          '@': resolve('src'),
          'common': resolve("src/common"),
          "components":resolve("src/components")
        }
      }

一些插件

babel-runtime 对es6语法做一些转译
fastclick 解决移动端点击延迟问题
babel-polyfill 对es6的一些例如promise作一些转译,就可以使用es6的api

webapack遇到的一些坑和小知识点

  1. 使用less并且要直接import全局css的话,要安装less,less-loader,如果还是不行安装一个node-less,在组件中要使用less的话,加一个lang='less'就可以了

  2. 要映射后台服务器,修改proxyTable

    proxyTable: {
    // proxy all requests starting with /api to jsonplaceholder
    '/isearch': {
    target: 'http://112.74.111.78:8090/isearch/',
    changeOrigin: true,
    pathRewrite: {
    '^/isearch': ''
    }
    }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,140评论 7 35
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 3,106评论 2 16
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,731评论 0 1
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,447评论 2 71
  • Webpack学习总结 此文只是自己学习webpack的一些总结,方便自己查阅,阅读不变,非常抱歉!! 下载安装:...
    Lxs_597阅读 936评论 0 0