美文网首页
Webpack入门(一)

Webpack入门(一)

作者: 841只 | 来源:发表于2019-05-07 15:37 被阅读0次

感谢入门 Webpack,看这篇就够了,按照教程走下来一步一步基本都ok,对webpack有了一个基本的认识。是很好的教程

Why Webpack

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。

Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

How to use

先在全局安装webpack

//全局安装npm install -g webpack

新建一个文件夹,这里命名为WebpackSample,然后在该路径中打开git bash,在项目中下载webpack

//安装到你的项目目录npm install --save-dev webpack

webpack的核心文件package.json可以自己在路径中创建,也可以用npm来创建,这里我们使用npm初始化的方式创建。创建过程中会进行基本信息的交互,包括name,version等,因为这里我们是简单的举例,所以我们可以全部回车掉进行默认处理

npm init //创建package.json文件

创建两个文件夹,三个文件。创建app和public文件夹,app文件夹用来放置原始数据和我们将写的javascript模块,public文件夹用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html文件)。接下来我们再创建三个文件:index.html——放在public文件夹中;Greeter.js——放在app文件夹中;main.js——放在app文件夹中。

index.html的代码:它在这里目的在于引入打包后的js文件(这里我们先把之后打包后的js文件命名为bundle.js)

<!-- index.html --> 

<!DOCTYPE html>

 <html lang="en">

 <head> 

<meta charset="utf-8"> 

<title>Webpack Sample Project</title> 

</head> 

<body>

 <div id='root'> </div>

 <script src="bundle.js"></script>

 </body> 

</html>

Greeter.js代码:

我们在Greeter.js中定义一个返回包含问候信息的html元素的函数,并依据CommonJS规范导出这个函数为一个模块:

module.exports = function() {

 var greet = document.createElement('div'); 

greet.textContent = "Hi there and greetings!"; 

return greet; };

main.js代码:把greeter.js返回的节点插入页面

const greeter = require('./Greeter.js');

document.querySelector("#root").appendChild(greeter());

OK,这个时候我们可以开始运行webpack了

因为我们这里采用的是全局安装,所以可以直接在命令行中使用webpack指令

注意,2019年5月下载的webapck版本命令和旧版本有所区别

webpack app/main.js public/bundle.js 

webpack app/main.js -o publick/bundle.js

OK了之后是这样的

在webstorm里面打开一下index.html就可以看到啦。

这是最基本的webapck使用方法,我们现在较常用的是使用webpack.config.js文件来配置

在webpack.config.js中定义entry和output即可。

module.exports = {

  entry:  __dirname + "/app/main.js",//已多次提及的唯一入口文件  

output: {

    path: __dirname + "/public",//打包后的文件存放的地方    

filename: "bundle.js"//打包后输出文件的文件名 

 }

}

在这之后在命令行中 直接webpack就好了。

另外还有一种使用npm来代替webpack的方式,我们在github上面也常看到

在package.json里面添加"scripts"字段(若scripts不存在),然后key="start",value="webpack",意思是运行npm start的时候相当于运行webpack。start是特殊的,如果是其他的scripts名,就要使用npm run script_value或者npm run build。

这个时候npm start和之前使用webpack命令是一样的效果啦。

相关文章

网友评论

      本文标题:Webpack入门(一)

      本文链接:https://www.haomeiwen.com/subject/zydnyqtx.html