1.前(fei)言(hua)

webpack是什么我在这里就不多说了,实在不知道的可以直接在去搜一下,都一大堆答案。关于用webpack怎么构建项目,方法也是多种多样,五花八门。今天,我就写下我平常构建项目的方式,这个方式我觉得比较便捷和简单粗暴,如果有什么要指出的,也欢迎大家评论,毕竟我也只是一个前端新人。

2.步骤

第一步,在目录建个文件夹

为了方便,我在编辑器打开这个目录了

第二步,创建package.json配置文件

输入命令行 $ npm init
依次输入,

从上往下就是,项目名称,迭代版本,项目说明,主入口文件,封装的可执行命令,作者的一些信息,源协议名称。
这应该就是最简单的配置文件了。

第三步,安装webpack依赖

如果之前没全局安装过webpack,就先安装一下

$ npm install webpack -g

然后安装项目依赖

$ npm install webpack --save-dev

然后就会看到package.json里面多了一行


这就说明安装成功了。

第四步,创建并配置webpack.config.js

创建webpack.config.js之前,先创建一个index.js和index.html,一个为入口文件,一个为普通的html文件
完了之后,目录就应该是这样的


在index.js里面写上这行测试用途的代码

document.write("hello world");

之后,创建一个webpack.config.js,代码如下

let path = require('path');
let webpack = require('webpack');
module.exports = {entry: './index.js',output: {path: path.join(__dirname, 'dist'), //输出目录的配置,模板、样式、脚本、图片等资源的路径配置都相对于它filename: "bundle.js"},module: {rules: []}
};

这个也应该是最基础的webpack.config.js了
然后执行 $ webpack
这个命令就是打包输出,执行完了之后,会看到,文件夹上多了一个dist文件夹,里面有个bundle.js,这个就是打包输出之后的文件夹和文件。需要的就是这些。

第五步,测试结果

在index.html引入之前输出的bundle.js。


最后,在随便一个浏览器,打开index.html

大功告成!上面这里写了很多,但实际上操作起来就是分分钟的事情,当然这是最简单的从零开始。

3.简单粗暴的搭建

如果真要最简单的构建项目,更简单的方法是,直接从别的项目拷贝package.json这个配置文件,然后执行

$ npm install

完了之后,在里面应该有配置的的,就都安装完成了,附上一段我常用的配置
package.json

{"name": "test3","version": "1.0.0","description": "测试版","dependencies": {},"devDependencies": {"babel-cli": "^6.10.1","babel-core": "^6.14.0","babel-loader": "^6.2.5","babel-preset-es2015": "^6.9.0","babel-preset-stage-0": "^6.5.0","babel-register": "^6.18.0","browser-sync": "^2.18.2","css-loader": "^0.25.0","ejs-compiled-loader": "^2.1.1","element-ui": "^1.2.5","extract-text-webpack-plugin": "^1.0.1","file-loader": "^0.9.0","glob": "^7.0.6","gulp": "^3.9.1","gulp-file-include": "^1.0.0","html-loader": "^0.4.3","html-webpack-plugin": "^2.22.0","iview": "^2.0.0-rc.5","node-sass": "^3.7.0","raw-loader": "^0.5.1","sass-loader": "^4.0.2","scss-loader": "0.0.1","style-loader": "^0.13.1","url-loader": "^0.5.7","vue": "^2.2.6","vue-loader": "^10.0.2","vue-resource": "^1.0.3","vue-router": "^2.4.0","vue-style-loader": "^1.0.0","vue-template-compiler": "^2.2.1","vuex": "^2.0.0","webpack": "^1.13.2","webpack-dev-server": "^1.15.1"},"scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "webpack-dev-server --hot --inline"},"author": "chen"
}

webpack.config.js

let path = require('path');
let webpack = require('webpack');
let serverHost = "localhost";
let HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {entry: './src/index.js',output: {path: path.join(__dirname, 'dist'), //输出目录的配置,模板、样式、脚本、图片等资源的路径配置都相对于它publicPath: '/dist/',filename: "bundle.js"},//加载器module: {loaders: [{test: /\.vue$/,loader: "vue-loader"},{test: /\.html$/,loader: "raw-loader"},{test: /\.css$/,loader: 'style-loader!css-loader'},{test: /\.js$/,exclude: /node_modules/,loader: "babel-loader"},{test: /\.scss$/,loader: 'style-loader!css-loader!sass-loader'},{test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,loader: 'file-loader'},{//图片加载器,雷同file-loader,更适合图片,可以将较小的图片转成base64,减少http请求//如下配置,将小于8192byte的图片转成base64码test: /\.(png|jpg|gif)$/,loader: 'url-loader?limit=8192&name=images/[hash].[ext]'}]},vue: {loaders: {scss: ['vue-style-loader', 'css', 'sass'].join('!')}},plugins: [new HtmlWebpackPlugin({title:"test3",filename:"./dist/index.html",//输出html文件,打包时插入js,不用自己手动引入inject: 'body',  //js插入的位置,true/'head'/'body'/falsehash: true}),],//使用webpack-dev-serverdevServer: {contentBase: './',host: serverHost,port: 9090, //默认9090inline: true, //可以监控js变化hot: true//热启动},//使用vue2.x的一个配置resolve: {alias: {vue: 'vue/dist/vue.js'}}
};

大家执行$ webpack就知道大概的区别了。在运行dist里面的index.html,就知道区别了

webpack快速构建项目相关推荐

  1. Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述

    Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述 前言 2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟 ...

  2. SpringBoot快速构建项目

    我们再来看一下SpringBoot的快速构建项目,我们都是在集成的IDEA当中,创建一个maven project,在maven project的pom文件里呢,我们再去加SpringBoot相关的坐 ...

  3. Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结

    Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结 前情回顾 去年写的那一套东西,虽然我也写得非常的认真,但是其中还是有点绕了.当时水平不行.现在 ...

  4. Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(二)安装 nodejs 环境以及 vue-cli 构建初始项目

    Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(二)安装 nodejs 环境以及 vue-cli 构建初始项目 在上一篇<Vue2+VueRouter2+ ...

  5. 转载: 我如何使用 Django + Vue.js 快速构建项目

    原文链接: https://www.ctolib.com/topics-109796.html 正文引用如下 引言 大U的技术课堂 的新年第一课,祝大家新的一年好好学习,天天向上:) 本篇将手把手教你 ...

  6. 【开源项目】SpringCloud 快速构建项目脚手架工程(持续更新)

    一.项目地址 https://gitee.com/smile-coding/springcloud-quick-start 二.项目说明 本项目旨在提供一个快速构建微服务的脚手架工程,不掺杂任何的复杂 ...

  7. 使用vue-cli快速构建项目

    vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. 安装vue-cli之前,需要先安装了vue和webpack · node -v          //(版本低引起:bas ...

  8. 使用vue-cli快速构建项目--vue.js学习笔记1

    1.vue init webpack 项目名称 2.cnpm(npm) install 3.npm run dev 4.打包 npm run build 打包完之后生成dist文件夹放到服务器上就行了 ...

  9. 使用ember-cli脚手架快速构建项目

    步骤: 安装Ember. 创建一个新应用程序. 定义路由. 编写一个UI组件. 构建您的应用程序以部署到生产环境. 安装Ember 您可以使用npm(Node.js包管理器,你需要安装node.js) ...

最新文章

  1. python测试脚本截图_selenium + python实现截图并且保存图片
  2. MySQL架构与历史【v1】【励志把高性能MySQL吃掉】
  3. 交大计算机学硕往年录取情况,上海交通大学2020年考研报录情况汇总及分析
  4. 10.傅里叶变换——更正式的傅里叶变换,频谱,局限性,离散傅里叶变换_4
  5. k8s架构及服务详解
  6. Ros学习——launch文件解析
  7. 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Ng
  8. 【C++】【Opencv】【vs2015】环境配置
  9. 树莓派无法打开摄像头模块,无法识别摄像头
  10. jdk 配置出错could not open `C:\Java\jdk16\lib\amd64\jvm.cfg‘ 解决方案
  11. postgresql和es_Apache的气流和PostgreSQL与码头工人和码头工人组成
  12. 图片编辑助手小程序_图片加文字_快速拼图_表情包制作
  13. Druid【部署 01】最新版本的(安装+启动服务+打开控制台+本地文件数据载入+数据查询)及(小内存服务器启动JVM参数调整)一次学会使用Druid的完整流程(已完成)
  14. 山海演武传·黄道·第一卷 雏龙惊蛰 第二章 修闵本饰邪
  15. 人人都来写算法 之 插入排序
  16. 安卓课程设计之记账本_基于Android个人用户记账本系统课程设计报告
  17. HashMap 为什么是2倍扩容
  18. 西京学院学位计算机题库和答案,西京学院 学位英语 普通英语 精彩试题整理.doc...
  19. mysql fulltext match_使用Mysql全文搜索Full-Text(fulltext和match...against)_MySQL
  20. (申请加精)你所不知道的奶粉秘密(2)------转自天涯

热门文章

  1. 如何把 Word 中的表格快速插入 LaTeX?
  2. Matlab注释语句
  3. Linux系统颜色默认表示的文件类型
  4. 如何转移主机之间Docker镜像
  5. 使用nodejs搭建HTTPS server
  6. Top 10 Security Risks for 2014
  7. Math.random()
  8. [译] 探究 Swift 中的 Futures Promises
  9. Hibernate面试题
  10. asp(javascript)中request.form(a).count 在ie6中总是为0