教你如何使用webpack打包你的项目

webpack是前端开发中比较常用的打包工具之一,另外还有gulp,grunt。之前没有涉及过打包这块,这里介绍一下使用webpack打包的流程。

Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,这个工具之后可以自动替你完成这些任务。


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


下面我们新建一个项目来详细描述一下使用webpack打包项目的过程:

1.安装好npm,这个不再复述,然后在一个目录下执行 npm init,这样就会初始化一个项目包,里面就有了一个package.json的文件,这个文件想必大家都有所了解

2.然后安装一下webpack,既然我们想打包,就要把webpack这个工具安装好,安装方式有两种,一个是全局安装一个是安装在项目中,在项目的package.json目录下执行的命令分别是npm install -g webpack 和 npm install --save-dev webpack,在这里我们安装在项目里面,使用第二种安装方式

3.安装完成之后我们能看到项目目录下有一个node_module的文件夹,然后我们就可以写自己的项目了,我们首先建立一个app和public的文件夹,在app中新建两个文件,分别是test.js和main.js,在pulic中新建一个index.html文件,这样我们的基本项目雏形就产生了


4.我们在index.html中写入一下片段:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Webpack Project</title>
  </head>
  <body>
    <div id='root'>
    </div>
    <script src="bundle.js"></script>
  </body>
</html>

5.我们在test.js中写入这样一个除了方法:

//test.js

module.exports = function() {
  var test= document.createElement('div');
  test.textContent = "Hi there and testing!";
  return test;
};

6.我们在main.js中把test.js的方法导入进来:

//main.js 
var test= require('./test.js');
document.getElementById('root').appendChild(test());

7.下面我们就可以使用webpack工具进行打包了,在项目的根目录,也就是包含node_module的目录下执行下面这个命令node_modules/.bin/webpack app/main.js public/bundle.js,这条命令的是使用webpack把打包后的文件命名为bundle.js放在public文件夹下,其中app/main,js是项目的入口。我们能看到终端上会打印出包含这样的log


8.这就说明我们的打包工作完成了,然后我们打开index.html文件就能看到我们输入的内容:Hi there and testing!

9.这样要配置项目入口,又要配置输出文件名之类的东西,在命令行输入比较麻烦,我们可以使用文件配置的方式,在项目的根目录中新建一个webpack.congfig.js的文件,把下面这些内容写入进去

module.exports = {
  entry:  __dirname + "/app/main.js",//已多次提及的唯一入口文件
  output: {
    path: __dirname + "/public",//打包后的文件存放的地方
    filename: "bundle.js"//打包后输出文件的文件名
  }
}

这样我们就可以直接使用node_modules/.bin/webpack直接进行打包操作了

10.如果我们不想使用node_modules/.bin/webpack这样的命令,习惯使用npm xxx之类的,我们在我们的package.json中设置一下启动命令即可:

"scripts": {
    "webpack": "webpack" //配置的地方就是这里啦
  }

然后我们直接执行npm run webpack同样可以执行打包任务

11.接下来我们介绍,如何直接引入json类型的文件,这里我们使用loaders模块,先说一下应用场景吧。我们现在有一个json文件,我们想把它导入到模块中,然后读取里面的信息,下面我们的文件目录是这样的:


12.如果我们想在任意一个模块,如test.js或者main.js中导入这个json文件,比如,我们的test.json文件中有这样一个内容

//test.json
{
  "Test": "Hi there and geetings from JSON!"
}

我们想在test.js使用这样Test字段

var test = require('./test.json');

module.exports = function() {
  var geet = document.createElement('div');
  geet.textContent = test.greetText;
  return geet;
};

我们就要引入json-loader,具体的办法是:在根目录下执行

//安装可以装换JSON的loader
npm install --save-dev json-loader

然后把我们的webpack.config.js配置成下面这样

module.exports = {
  entry:  __dirname + "/app/main.js",
  output: {
    path: __dirname + "/public",
    filename: "bundle.js"
  },


  module: {//在配置文件里添加JSON loader
    loaders: [
      {
        test: /\.json$/,
        use: "json-loader"
      }
    ]
  }
}

最后我们执行一下npm run webpack,打包完成,打开index.html页面就会显示test.json里面的Hi there and geetings from JSON!这个内容

13.如果我们想把css样式也一起打包,就npm install --save-dev style-loader css-loader,然后在webpack.config.js进行相应的配置就行了,这样是把js和css打包成一个文件,也可以把他们分开打包,这样后面再介绍吧

  • 18
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Webpack是一个现代的前端打包工具,用于将多个模块打包成一个或多个静态资源文件。下面是Webpack的基本打包步骤: 1. 安装Webpack:首先,需要在项目中安装Webpack及其相关的依赖。可以使用npm或yarn来进行安装。例如,使用npm安装Webpack可以执行以下命令:`npm install webpack webpack-cli --save-dev` 2. 创建Webpack配置文件:在项目根目录下创建一个名为`webpack.config.js`的文件,该文件用于配置Webpack打包行为。 3. 配置入口和出口:在`webpack.config.js`文件中配置打包的入口和出口。入口是指Webpack开始构建的文件,出口是指构建后生成的静态资源文件。 4. 配置加载器(Loaders):Webpack通过加载器来处理各种类型的文件。加载器允许你在打包过程中对文件进行转换、处理和优化。在配置文件中,可以定义各种加载器,并为不同类型的文件指定相应的加载器。 5. 配置插件(Plugins):Webpack插件可以在打包过程中执行各种任务,例如优化、压缩、拷贝文件等。在配置文件中,可以定义各种插件,并根据需要进行配置。 6. 运行打包命令:完成以上配置后,可以在终端中执行打包命令来运行Webpack。通常,可以使用`npx webpack`命令来运行Webpack,并根据配置文件中的设置进行打包。 7. 查看打包结果:Webpack打包完成后,会生成一个或多个静态资源文件,可以根据配置文件中的设置确定生成的文件名和路径。可以在浏览器中查看打包结果,或将生成的文件部署到服务器上。 这是Webpack的基本打包步骤,如果需要更详细的配置和使用指南,可以参考Webpack官方文档或相关程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值