学习笔记 JavaScript ES6 Webpack配置

从零开始配置webpack。

step1:建立文件夹

在桌面上新建一个文件夹es6-webpack然后拖入vs code中。

VS Code中按control+~,打开终端,终端显示的路径为:

wangshuomatoMacBook-Pro:es6-webpack wangshuo$ 

step2:初始化package.json

在项目中初始化一个package.json文件,后面会将项目依赖的包都配置在这个文件里。

初始化的方法是在终端里输入命令:(需要有node和npm环境)

npm init

一路回车后 ,生成package.json文件

如果在npm init 后面加 -y,就可以跳过这些回车的环节直接生成package.json。

npm init -y

 step3:安装webpack

这里介绍两种方式,一种是项目安装,把webpack安装到当前项目里面;第二种是全局安装,在电脑的整个环境里安装webpack,但是并不建议使用全局安装,因为webpack版本可能影响其它项目,或者升级webpack版本时影响其它项目。

全局安装命令(不推荐)

npm i webpack -g // i是install的简写

项目安装:通过空格可以同时安装多个包。

npm i webpack webpack-cli webpack-dev-server --save-dev

--save-dev

webpack中分为开发环境和生产环境,生产环境是指上线打包的环境。webpack只有在开发环境中才会用到,上线后就不需要用webpack了。

所以,对只在开发环境下使用,上线后不需要使用的包,在安装时就需要使用 --save-dev。

通过--save-dev安装的包会生成devDependencies,

webpack中文文档地址:概念 | webpack 中文网https://www.webpackjs.com/concepts/文件package-lock.json作用是锁定包的版本,node_modules是包安装的位置。

node_modules是不需要上传到git上面的。因为使用npm install就可以根据package.json的依赖自动生成node_modules文件夹。

step4:新建webpack.config.js并编辑

module.exports = {
    mode : 'development', // 开发模式
    entry : './src/index.js' // 指定入口文件,./表示当前路径
}

step5:创建入口文件

创建存放源文件的文件夹src并新建index.js入口文件并编辑。

const sum = (x ,y) => x + y

此时,目录结构如下:

 此时使用webpack使命打包项目是不可以的,因为webpack并不是安装在全局下,而是安装在项目下,如果想在项目内部安装的模块当中找webpack的模块,就要用到npx命令。

这时,会在目录中生成一个dist的文件夹

如果把开发模式改为生产环境,配置output后,代码就会被执行混淆。

step6:打包HTML文件

这里需要使用plugin,开发环境需要在终端输入命令,生产环境不需要这个命令,--save-dev可以简写为-D。

npm i html-webpack-plugin --save-dev

现在来看一下包“html-webpack-plugin”是如何安装并使用的,访问网站:npmjs.com,进入后搜索html-webpack-plugin,如图:

 看到了示例是如何使用的,再来写代码,完善webpack.config.js

把下面的代码加进去,引入一个包:

const HtmlWebpackPlugin = require('html-webpack-plugin')

此时,webpack.config.js代码如下:

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    mode : 'development', 
    entry : './src/index.js', // 指定入口文件 
    output : {
        filename : 'index.js'
    },
    plugins: [
        new HtmlWebpackPlugin()
    ]
}

 再运行npx webpack,会在dist文件夹下生成一个index.html文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Webpack App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script defer src="index.js"></script>
  </head>
  <body></body>
</html>

通过上面代码,我们发现自动将index.js引入了,也就是说,当项目有很多js需要引入时,可以不再像以前一样手动写<script />标签引入了,webpack会自动处理。

能够在html文件中引入外部的资源文件 ,生成一个html的入口。

step7:配置HTML模板

如果想在生成html文件时指定title等内容,就可以通过设置一个模板文件来实现。

在src下新建一个index.html文件,(VSCode下,输入!+tab就可以自动生成一个空白的html结构),修改指定的内容后,比如修改title为hellow es6,然后在webpack.conf.js文件中,修改plugin:

plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html' // 指定模板
        })
    ]

再运行npx webpack,发现新生成的index.html中title已经变成了hello es6。

step8:配置webpack不打包哪些文件,原封不动的copy过去

有些文件不需要被webpack打包,比如在src同级目录新建一个static文件夹,这时需要再安装一个包,copy-webpack-plugin,安装命令如下:

npm i copy-webpack-plugin -D

然后再用同样的方式导入及配置plugin:

const HtmlWebpackPlugin = require('html-webpack-plugin')
const CopyPlugin = require("copy-webpack-plugin");

module.exports = {
    mode : 'development', 
    entry : './src/index.js', // 指定入口文件 
    output : {
        filename : 'index.js'
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'
        }),
        new CopyPlugin({
            patterns: [
              { from: "static", to: "static" }
            ],
            options: {
              concurrency: 100,
            },
        })
    ]
}

npx webpack后如图:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值