webpack简单尝试

手动搭建webpack#1.0

项目代码: https://github.com/yanghanbin-sz/webpack-demo

初始化package.json文件

npm init --yes

安装webpack webpack-dev-server

cnpm install webpack webpack-dev-server --save-dev

配置webpack-dev-server快捷命令

//package.json
{
    "name": "webpack-demo",
    "version": "1.0.0",
    "description": "",
    "main": "main.js",
    "scripts": {
        "dev": "webpack-dev-server --inline --open --hot --port 8082"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "vue-loader": "^8.5.4",
        "webpack": "^2.5.1",
        "webpack-dev-server": "^2.4.5"
    }
}

配置loader

cnpm install vue-loader@8.5.4 vue-html-loader css-loader vue-style-loader vue-hot-reload-api@1.3.2 --save-dev

配置babel

cnpm install babel-loader babel-core babel-plugin-transform-runtime babel-preset-es2015 babel-runtime --save-dev

加载核心vue文件

cnpm install vue@1.0.28 --save

配置webpack.config.js

module.exports = {
    entry: './main.js',
    output: {
        path: __dirname,
        filename: 'build.js'
    },

    module: {
        loaders: [{
            test: /\.vue$/,
            loader: 'vue'
        }, {
            test: /\.js$/,
            exclude: /node_modules/,
            loader: 'babel',
            query: {
                presets: ['es2015'] //版本
            }
            // loader: 'babel?presets=es2015' //以上2种方式选一种
        }]
    },

    babel: {
        presets: ['es2015'], // 配置解析版本
        plugins: ['transform-runtime']
    },

    vue: {
        loaders: {
            js: 'babel?presets=es2015' //配置解析版本
        }
    }
}

PS: 各个webapck版本配置不一样,比如我当前用到版本bael: {xxxx} 这段presets:['es2015'] 没有生效,所以需要在babel中加入?presets=es2015参数

npm run dev

结果显示如下

结合 vue-router

cnpm install vue-router@0.7.13 --save

产品上线

执行webpack -p 打包,压缩,也可以配置在package.json中,执行npm run build

{
  "name": "webpack-demo",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --hot --port 8082",
    "build": "webpack -p"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.24.1",
    "babel-loader": "^7.0.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-runtime": "^6.23.0",
    "css-loader": "^0.28.1",
    "vue-hot-reload-api": "^1.3.2",
    "vue-html-loader": "^1.2.4",
    "vue-loader": "^8.5.4",
    "vue-style-loader": "^3.0.1",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.5"
  },
  "dependencies": {
    "vue": "^1.0.28",
    "vue-router": "^0.7.13"
  }
}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 webpack2和vue2已经不是新鲜东西了,满大街的文章在讲解webpack和vue,但是很多内容写的不是...
    技术宅小青年阅读 6,716评论 4赞 43
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,714评论 2赞 71
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,431评论 7赞 35
  • 是的,直角边还有一个处理方法…… 那就是剪牙口 还是先来看缝合完的直角布料背面 沿着直角外侧,剪掉一个倾斜45°的...
    百合手工阅读 1,666评论 3赞 1
  • 代理模式 相信了解设计模式的developer对代理(proxy pattern)模式都不陌生。代理模式的基本思想...
    lsfire阅读 638评论 0赞 6

友情链接更多精彩内容