webpack 学习1 安装构建项目
本文中使用的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 安装构建项目的更多相关文章
- vue2.0+webpack+vuerouter+vuex+axios构建项目基础
		
前言 本文讲解的是vue2.0+webpack+vuerouter+vuex+axios构建项目基础 步骤 1.全局安装webpack,命令 npm install webpack -g 注意,web ...
 - webpack学习(一)项目中安装webpack
		
如何在项目中安装webpack,webpack-cli? 前提:电脑安装了 node和npm包管理工具 1 创建项目文件夹或者在已有的项目中打开终端 输入相关命令: npm init 因为已经安装好 ...
 - webpack学习笔记--安装
		
1 首先要安装node Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持 2 npm install webpack -g 通常我们会将 Webp ...
 - maven 学习---使用Maven构建项目
		
要构建一个基于Maven的项目,打开控制台,进入到 pom.xml 文件所放的项目文件夹,并发出以下命令: mvn package 这将执行Maven的“package”阶段. Maven构建生命周期 ...
 - maven学习(1)下载和安装和初步使用(手动构建项目和自动构建项目)
		
1:背景 关于项目的搭建,有些人使用开发工具搭建项目,然后将项目所依赖第三方jar 复制到类路径下面,上述搭建方式没有第三方类库的依赖关系,在导入一个jar包的时候,这个jar包还可能依赖其他jar包 ...
 - webpack进阶构建项目(一)
		
webpack进阶构建项目(一) 阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解ba ...
 - Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面
		
制作.vue模板文件 通过前面的两篇博文的学习,我们已经建立好了一个项目.问题是,我们还没有开始制作页面.下面,我们要来做页面了. 我们还是利用 http://cnodejs.org/api 这里公开 ...
 - VUE2 第六天学习--- vue单文件项目构建
		
阅读目录 VUE2 第六天学习--- vue单文件项目构建 回到顶部 VUE2 第六天学习--- vue单文件项目构建 VUE单文件组件在Vue项目中,然后使用 new Vue({el: '#cont ...
 - [转]webpack进阶构建项目(一)
		
阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解babel-loader加载器 6.理 ...
 
随机推荐
- 什么是网站TDK?
			
什么是网站TDK?可能很多新手站长与SEOer不知道.其实TDK就是网站的标题(title).描述(description)和关键词(keyword),TDK是网站很重要的元素,他是蜘蛛爬取你的网站之 ...
 - 日常Git使用——2019年12月11日16:19:03
			
1.git介绍 1.1 什么是git? 什么是Git? 比如一个项目,两个人同时参与开发,那么就把这个项目放在一个公共的地方,需要的时候都可以去获取,有什么改动,都可以进行提交. 为了做到这一点,就需 ...
 - C#高级编程笔记(17至21章节)线程/任务
			
17 Visual Studio 2013 控制台用Ctrl+F5可以显示窗口,不用加Console.ReadLine(); F5用于断点调式 程式应该使用发布,因为发布的程序在发布时会进行优化, 2 ...
 - autoit3 脚本自动安装实例
			
软件自动安装的相关实例!贴出来用于参考,并部分相关语法与示例 #RequireAdmin If DriveMapGet("T:")=="" Then Drive ...
 - 如何使用Keka for Mac提取受密码保护的文件?用Keka提取文件的格式
			
如何使用Keka for Mac提取受密码保护的文件?keka Mac是很多人喜欢的压缩解压工具,以小巧,使用简单,界面简洁受到很多Mac用户的喜欢,你还可以使用它提取文件,下面我们就来介绍一下关于用 ...
 - Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!
			
Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定 ...
 - Visual Studio 2008 附加进程调试
			
关于附加进程调试的问题: 在项目当中经常使用“附加到进程”来调试项目,感觉挺方便的.我们做的项目通常都会发布到IIS(特别是B/S),一可以直接通过地址栏输入地址就可以运行项目,不必去使用开发工具来打 ...
 - 查看SQL Server被锁的表以及如何解锁【转】
			
锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLO ...
 - vue将页面导出成pdf
			
npm i jspdf-html2canvas prinOut(){ // 导出pdf let page = document.querySelector('.app-main'); // page ...
 - (转)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 ...