首页 > 其他分享 >《webpack篇》webpack

《webpack篇》webpack

时间:2024-01-16 10:58:49浏览次数:24  
标签:npm 文件 html js webpack 文件夹

webpack

webpack的产生

随着前端的发展,javascript引入了很多思想和技术,例如:模块化、TypeScript、Scss、Less等,这让我们开发更快,但是,这些新的文件格式只有转换成javascript、css等,游览器才能识别,人工转换太过繁琐,所以webpack应运而生。

webpack是什么

参考链接:https://www.cnblogs.com/hfxm/p/8406235.html

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

webpack的使用

参考链接:https://www.cnblogs.com/hfxm/p/8406235.html
参考链接:https://www.cnblogs.com/my-program-life/p/11962594.html

下面只是基础介绍,详细介绍请看参考链接。

1、安装
Webpack可以使用npm安装,新建一个空的练习文件夹(此处命名为webpack sample project),在终端中转到该文件夹后执行下述指令就可以完成安装。

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

2、准备工作

(1)初始化
在上述练习文件夹中创建一个package.json文件,这是一个标准的npm说明文件,里面蕴含了丰富的信息,包括当前项目的依赖模块,自定义的脚本任务等等。在终端中使用npm init命令可以自动创建这个package.json文件

npm init
// 项目名称,项目描述,作者等信息,回车默认即可。

(2)安装
package.json文件已经就绪,我们在本项目中安装Webpack作为依赖包

// 安装Webpack
npm install --save-dev webpack

(3)创建文件

回到之前的空文件夹,并在里面创建两个文件夹,app文件夹和public文件夹,app文件夹用来存放原始数据和我们将写的JavaScript模块,public文件夹用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html文件)。接下来我们再创建三个文件:

  • index.html --放在public文件夹中;
  • Greeter.js-- 放在app文件夹中;
  • main.js-- 放在app文件夹中;

image

(4)代码

index.html
我们在index.html文件中写入最基础的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规范导出这个函数为一个模块:

// Greeter.js
module.exports = function() {
  var greet = document.createElement('div');
  greet.textContent = "Hi there and greetings!";
  return greet;
};

main.js
main.js文件中我们写入下述代码,用以把Greeter模块返回的节点插入页面。

//main.js
const greeter = require('./Greeter.js');
document.querySelector("#root").appendChild(greeter());

3、使用webpack
webpack可以在终端中使用,在基本的使用方法如下:

# {extry file}出填写入口文件的路径,本文中就是上述main.js的路径,
# {destination for bundled file}处填写打包文件的存放路径
# 填写路径的时候不用添加{}
webpack {entry file} {destination for bundled file}

指定入口文件后,webpack将自动识别项目所依赖的其它文件,不过需要注意的是如果你的webpack不是全局安装的,那么当你在终端中使用此命令时,需要额外指定其在node_modules中的地址,继续上面的例子,在终端中输入如下命令

# webpack非全局安装的情况
node_modules/.bin/webpack app/main.js public/bundle.js

image

可以看出webpack同时编译了main.js 和Greeter,js,现在打开index.html,可以看到如下结果

image

4、通过配置文件使用
在当前练习文件夹的根目录下新建一个名为webpack.config.js的文件,我们在其中写入如下所示的简单配置代码,目前的配置主要涉及到的内容是入口文件路径和打包后文件的存放路径。

module.exports = {
  entry:  __dirname + "/app/main.js",//已多次提及的唯一入口文件
  output: {
	path: __dirname + "/public",//打包后的文件存放的地方
	filename: "bundle.js"//打包后输出文件的文件名
  }
}
// 注:“__dirname”是node.js中的一个全局变量,它指向当前执行脚本所在的目录。

有了这个配置之后,再打包文件,只需在终端里运行webpack(非全局安装需使用node_modules/.bin/webpack)命令就可以了,这条命令会自动引用webpack.config.js文件中的配置选项,示例如下:
image

5、npm的打包
对npm进行配置后可以在命令行中使用简单的npm start命令来替代上面略微繁琐的命令。在package.json中对scripts对象进行相关设置即可,设置方法如下。

{
  "name": "webpack-sample-project",
  "version": "1.0.0",
  "description": "Sample webpack project",
  "scripts": {
	"start": "webpack" // 修改的是这里,JSON文件不支持注释,引用时请清除
  },
  "author": "zhang",
  "license": "ISC",
  "devDependencies": {
	"webpack": "3.10.0"
  }
}
// package.json中的script会安装一定顺序寻找命令对应位置,本地的node_modules/.bin路径就在这个寻找清单中,所以无论是全局还是局部安装的Webpack,你都不需要写前面那指明详细的路径了。

npm的start命令是一个特殊的脚本名称,其特殊性表现在,在命令行中使用npm start就可以执行其对于的命令,如果对应的此脚本名称不是start,想要在命令行中运行时,需要这样用npm run {script name}如npm run build,我们在命令行中输入npm start试试,输出结果如下:

image

标签:npm,文件,html,js,webpack,文件夹
From: https://www.cnblogs.com/fusio/p/17967128

相关文章

  • webpack,babel配置项目适配IE11
    package.json"browserslist":["ie11"] webpack.config.jsconstpath=require('path')consthtmlWebpackPlugin=require('html-webpack-plugin')const{CleanWebpackPlugin}=require('clean-webpack-......
  • JS常用工具:Webpack 和 JShaman分别有什么用?
    Webpack和JShaman是两个不同的工具,它们的特点和用途也不同。Webpack是一个前端资源模块打包工具,主要用于将各种静态资源(如JavaScript、CSS、图片等)视为模块,并将其打包成浏览器可以识别的代码。Webpack的特点包括:1.模块化:Webpack将各种资源视为模块,使开发者能够更好地组织和管理项......
  • JS常用工具:Webpack 和 JShaman分别有什么用?
    Webpack和JShaman是两个不同的工具,它们的特点和用途也不同。Webpack是一个前端资源模块打包工具,主要用于将各种静态资源(如JavaScript、CSS、图片等)视为模块,并将其打包成浏览器可以识别的代码。Webpack的特点包括:1.模块化:Webpack将各种资源视为模块,使开发者能够更好地组织和管理......
  • Webpack的使用
    Webpack是现在最流行的Web构建框架,本文章的讲解的基本技能内容图如下:1、webpack基本使用webapck是什么webpack是一种前端资源构建的工具,一个静态模块打包器(modulebundler)。在webpack看来,前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理(chunk)。它根据模块......
  • webpack指南(代码分离)
    代码分离常用的代码分离方法有三种:入口起点:使用 entry 配置手动地分离代码。防止重复:使用 入口依赖 或者 SplitChunksPlugin 去重和分离chunk动态导入:通过模块的内联函数调用分离代码。入口起点 projectwebpack-demo|-package.json|-package-lock.json|-......
  • vue&webpack - vue2版本webpack脚手架配置梳理
    vue&webpack-vue2版本webpack脚手架配置梳理资源链接VueCLIwebpackwebpack5和webpack4的区别webpackWebpack4于2018年2月发布。(2020-10-10)webpack5.0.0发布VUECLI配置configureWebpackvue.config.js中的configureWebpack选项提供一个对象://vue.con......
  • 【Webpack】-css,less,图片的打包及压缩优化
    一、打包CSS代码由于Webpack默认只识别js代码,所以打包css代码需要其他一些东西来帮忙加载器css-loader:解析css代码加载器style-loader:把解析后的css代码插入到DOM步骤:1.准备css文件代码引入到src/login/index.js中(压缩转译处理等)2.下载css-loader和style-loader本地软件包3.配置web......
  • 【Webpack】-定义及各种使用和自动生成html插件
    一、什么是Webpackwebpack被定义为现代JavaScript应用程序的静态模块打包器(modulebundler),是目前最为流行的JavaScript打包工具之一。静态模块:指的是编写代码过程中的,html,css,js,图片等固定内容的文件打包:把静态模块内容,压缩,整合,转译等(前端工程化)1.把less/sass转成css代码2.......
  • webpack概念(依赖图、target、manifest)
    依赖图(dependencygraph)依赖的东西可以是代码,也可以是非代码(images和web字体) 从 入口 开始,webpack会递归的构建一个 依赖关系图,这个依赖图包含着应用程序中所需的每个模块,然后将所有模块打包为少量的 bundle ——通常只有一个——可由浏览器加载。对于 HTTP/2 来......
  • webpack(模块modules 和 模块解析)
    模块(Modules)每个模块都具备了条理清晰的设计和明确的目的何为webpack模块与 Node.js模块相比,webpack模块能以各种方式表达它们的依赖关系。下面是一些示例:ES2015 import 语句CommonJS require() 语句AMD define 和 require 语句css/sass/less文件中的 @imp......