本文中使用的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. 什么是网站TDK?

    什么是网站TDK?可能很多新手站长与SEOer不知道.其实TDK就是网站的标题(title).描述(description)和关键词(keyword),TDK是网站很重要的元素,他是蜘蛛爬取你的网站之 ...

  2. 日常Git使用——2019年12月11日16:19:03

    1.git介绍 1.1 什么是git? 什么是Git? 比如一个项目,两个人同时参与开发,那么就把这个项目放在一个公共的地方,需要的时候都可以去获取,有什么改动,都可以进行提交. 为了做到这一点,就需 ...

  3. C#高级编程笔记(17至21章节)线程/任务

    17 Visual Studio 2013 控制台用Ctrl+F5可以显示窗口,不用加Console.ReadLine(); F5用于断点调式 程式应该使用发布,因为发布的程序在发布时会进行优化, 2 ...

  4. autoit3 脚本自动安装实例

    软件自动安装的相关实例!贴出来用于参考,并部分相关语法与示例 #RequireAdmin If DriveMapGet("T:")=="" Then Drive ...

  5. 如何使用Keka for Mac提取受密码保护的文件?用Keka提取文件的格式

    如何使用Keka for Mac提取受密码保护的文件?keka Mac是很多人喜欢的压缩解压工具,以小巧,使用简单,界面简洁受到很多Mac用户的喜欢,你还可以使用它提取文件,下面我们就来介绍一下关于用 ...

  6. Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!

    Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定  ...

  7. Visual Studio 2008 附加进程调试

    关于附加进程调试的问题: 在项目当中经常使用“附加到进程”来调试项目,感觉挺方便的.我们做的项目通常都会发布到IIS(特别是B/S),一可以直接通过地址栏输入地址就可以运行项目,不必去使用开发工具来打 ...

  8. 查看SQL Server被锁的表以及如何解锁【转】

    锁定数据库的一个表的区别  SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除  SELECT * FROM table WITH (TABLO ...

  9. vue将页面导出成pdf

    npm i jspdf-html2canvas prinOut(){ // 导出pdf let page = document.querySelector('.app-main'); // page ...

  10. (转)ping: www.baidu.com: Name or service not known centos7 -bash: ifconfig: command not found

    [root@mysqlcentos01 ~]# ping www.baidu.com ping: www.baidu.com: Name or service not known [root@mysq ...