本文中使用的webpack版本是4+,请注意区分

node.js安装

node.js下载地址 选择较低版本的稳定版下载,下载完成后得到的是一个msi文件,点击安装即可

安装完毕以后新建一个文件夹,并在此文件夹下面按下shift+鼠标右键 在window10下这是在选中的目录下打开命令行窗口,也可以使用cmd进入目标文件夹,只要是在目标文件夹下开启命令窗口即可

初始化项目

npm init -y //init 表示初始化一个项目 -y表示构建的项目使用默认值 你可以分别 使用npm init 和npm init -y,就可以很清晰的观察它们之间的区别

敲完之后目录下就会出现两个文件

然后安装webpack 和webpack-cli

npm i webpack -d //安装webpack -d表示开发环境依赖 -s标识生产环境依赖 -g表示全局安装

npm i webpack-cli -d

为什么在本地安装而非安装至全局环境,那是因为在你使用html-webpack-plugin的时候会出现一个NodeTemplatePlugin问题,

这时候你需要把webpack连接到本地安装上(执行npm link webpack -s -d 连接到本地),所以我们就直接使用本地安装了。而你使用全局安装在执行这一步后,因为你所有的依赖是安装在全局的,所以会报一个

的错误(找不到模块的错误) 这时候,在执行npm i webpack -d 和npm i webpack-cli就可以解决了

我们在本目录下先建一个文件夹 src和一个配置webpack配置文件 webpack.config.js

webpack.config.js文件一定要和package.json文件同级,不然就得在package.json中指定配置文件地址,才能生效。至于如何指定,后面会有介绍,心急得同学可以去百度。

在webpack.config.js中添加如下配置内容 注意以下配置内容是为了更直观的描叙配置文件而是用的假数据,实际使用中并非如此

const path = require("path");//这个是node.js自带的路径模块 可以有效的防止不同机器上路劲出现差异问题

//第一种使用对象作为配置抛出
module.exports = {
mode: 'development',//配置
entry: {
index: path.join(__dirname, 'src/index.js')
},
output: {
filename: 'js/[name].js'
}
}
// 第二种使用方法作为配置抛出 env 环境对象 argv 配置选项的映射对象
module.exports = function (env, argv) {
console.log('env', env);
console.log('argv', argv);
return {
mode: 'development',
entry: {
index: path.join(__dirname, 'src/index.js')
},
output: {
filename: 'js/[name].js'
}
}
} // //第三种方法 使用promise 这种方法与第二种方法没有太大的区别,唯一的不同就是异步加载配置文件完成之后才会进行打包 下面的代码产生结果就是延时五秒后开始进行打包
module.exports = () => {
return new Promise((success, failed) => {
setTimeout(() => {
success({
mode: 'development',
entry: {
index: path.join(__dirname, 'src/index.js')
},
output: {
filename: 'js/[name].js'
}
})
}, 5000)
})
} //第四种 导出多个配置对象 也可以使用方法抛出 方法返回值是一个数组就行了 所有的配置对象都会构建。例如,导出多个配置对象,对于针对多个构建目标(例如 AMD 和 CommonJS)打包一个 library 非常有用。
module.exports = [
{
mode: 'development',//配置
entry: {
index: path.join(__dirname, 'src/index.js')
},
output: {
filename: 'js/[name].js'
}
},
{
mode: 'production',//配置
entry: {
index: path.join(__dirname, 'src/index.js')
},
output: {
filename: 'production/[hash].js'
}
},
]

好了webpack的安装构建项目大致上就是如此,下一章记录webpack的起点和输入的配置

webpack 学习1 安装构建项目的更多相关文章

  1. vue2.0+webpack+vuerouter+vuex+axios构建项目基础

    前言 本文讲解的是vue2.0+webpack+vuerouter+vuex+axios构建项目基础 步骤 1.全局安装webpack,命令 npm install webpack -g 注意,web ...

  2. webpack学习(一)项目中安装webpack

    如何在项目中安装webpack,webpack-cli? 前提:电脑安装了 node和npm包管理工具 1 创建项目文件夹或者在已有的项目中打开终端  输入相关命令: npm init 因为已经安装好 ...

  3. webpack学习笔记--安装

    1 首先要安装node  Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持 2 npm install webpack -g 通常我们会将 Webp ...

  4. maven 学习---使用Maven构建项目

    要构建一个基于Maven的项目,打开控制台,进入到 pom.xml 文件所放的项目文件夹,并发出以下命令: mvn package 这将执行Maven的“package”阶段. Maven构建生命周期 ...

  5. maven学习(1)下载和安装和初步使用(手动构建项目和自动构建项目)

    1:背景 关于项目的搭建,有些人使用开发工具搭建项目,然后将项目所依赖第三方jar 复制到类路径下面,上述搭建方式没有第三方类库的依赖关系,在导入一个jar包的时候,这个jar包还可能依赖其他jar包 ...

  6. webpack进阶构建项目(一)

    webpack进阶构建项目(一) 阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解ba ...

  7. Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面

    制作.vue模板文件 通过前面的两篇博文的学习,我们已经建立好了一个项目.问题是,我们还没有开始制作页面.下面,我们要来做页面了. 我们还是利用 http://cnodejs.org/api 这里公开 ...

  8. VUE2 第六天学习--- vue单文件项目构建

    阅读目录 VUE2 第六天学习--- vue单文件项目构建 回到顶部 VUE2 第六天学习--- vue单文件项目构建 VUE单文件组件在Vue项目中,然后使用 new Vue({el: '#cont ...

  9. [转]webpack进阶构建项目(一)

    阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解babel-loader加载器 6.理 ...

随机推荐

  1. Ext js-01 -helloworld

    一.下载ext: 登陆这个网址  https://www.sencha.com/products/evaluate/ 下载下来解压后如下:安装cmd程序 二.开始helloworld 新建一个idea ...

  2. Hive数据如何同步到MaxCompute之实践讲解

    摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute.MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的 ...

  3. Mac 上使用svn 记录

    .启动svn服务器 svnadmin create /Users/liuwei/Desktop/svn/UI 如果本地有 UI这个目录了就不用再运行 使用这句就可以了 svnserve -d -r / ...

  4. PHP curl_copy_handle函数

    curl_copy_handle — 复制一个cURL句柄和它的所有选项 说明 resource curl_copy_handle ( resource $ch ) 复制一个cURL句柄并保持相同的选 ...

  5. Sticks

    题目链接 题意:给你一组等长木棒,然后他随意砍断成n个木棒,木棒长度不一,但你知道分别是多少,要你求出原始木棒可能的最小长度. 思路:首先那个原始木棒的长度肯定是其总长度的约数,然后也肯定大于等于所有 ...

  6. windows防火墙批量开放端口

    windows自带的防火墙没有增加端口范围的功能,这让一些常见的配置变得非常麻烦(比如FTP被动模式下,就需要在防火墙上开启端口范围),经过查询资料,使用以下cmd批处理内容,即可增加端口范围: ec ...

  7. window 任务管理器

    用的是win10 系统,一般window都差不多. 1.查看进程: 2.查看端口:性能 --> 打开资源资源监视器 --> 网络 --> 侦听端口 3.查看磁盘活动(查看文件被哪个进 ...

  8. A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications.

    介绍 本指南的目的是大家感兴趣的惯性MEMS(微机电系统)传感器,特别是加速计和陀螺仪和IMU组合设备(惯性测量单元). 例如IMU单位:Acc_Gyro_6DOF对MCU处理单元UsbThumb提供 ...

  9. CSS-美化checkbox

    注意:css3 的用: checked 伪类选择器会去检查元素属性(`input[checked]`),而不是 dom 节点上的属性( ``).所以要使用 jquery 的 prop 而非 attr ...

  10. Cygwin访问windows磁盘目录

     http://blog.csdn.net/duguduchong/article/details/7680650 Cygwin访问windows磁盘目录 标签: windows磁盘user平台c 2 ...