webpack使用

概念

   本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

webpack的四个核心概念:

  • 入口(entry):
    入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。
  • 输出(output):
    output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。你可以通过在配置中指定一个 output 字段,来配置这些处理过程
  • loader:
    loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理
  • 插件(plugins):
    loader 被用于转换某些类型的模块,而插件则可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。插件接口功能极其强大,可以用来处理各种各样的任务。

安装:

//全局安装
npm install -g webpack

正式使用Webpack前的准备

1.新建一个文件夹(例如:webpackDemo)

2.在webpackDemo目录下使用npm init命令可以自动创建这个package.json文件

npm init

  

//package.json   (json文件不支持注解,复制时请把注解删除)
{
  "name": "webpacktest",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack",              //npm start 
    "server": "webpack-dev-server --open"     //npm run server
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.30.0",
    "webpack-dev-server": "^3.3.1"
  }
} 

3.安装Webpack作为依赖包

npm install --save-dev webpack

4.构建本地服务器

npm install --save-dev webpack-dev-server

  

 

//webpack.config.js
module.exports = {
  entry:  __dirname + "/app/main.js",//已多次提及的唯一入口文件
  output: {   //在哪里输出它所创建的 bundles
  // 注:“__dirname”是node.js中的一个全局变量,它指向当前执行脚本所在的目录。
    path: __dirname + "/public",//打包后的文件存放的地方
    filename: "bundle.js"//打包后输出文件的文件名
  },
  
  devtool: 'eval-source-map',   //方便的调试能极大的提高开发效率
  // devtool: 'cheap-module-eval-source-map',   //构建速度更快,但是不利于调试,推荐在大型项目考虑时间成本时使用。
  
  /* 
     构建本地服务器 想不想让你的浏览器监听你的代码的修改,并自动刷新显示修改后的结果,其实Webpack提供一个可选的本地开发服务器,这个本地服务器基于node.js构建,可以实现你想要的这些功能,不过它是一个单独的组件,在webpack中进行配置之前需要单独安装它作为项目依赖: npm install --save-dev webpack-dev-server */ devServer: { contentBase: "./public",//本地服务器所加载的页面所在的目录 historyApiFallback: true,//不跳转 inline: true,//实时刷新 port:8080 } , }

  

4.在webpackDemo目录下新建一个app文件夹和public文件夹。在app目录下新建一个main.js文件,在public目录下新建一个index.html文件。

//main.js
document.querySelector("#root").innerHTML="hello world";
<!--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>

5.  本地调试:

npm run server

 打包:

npm start

 

 

  

posted @ 2019-04-26 11:08  neo_o  阅读(103)  评论(0)    收藏  举报

愿你的生活只有诗和远方