webpack的安装与使用(单文件)

时间:2022-02-28 17:23:16

  在安装 Webpack 前,你本地环境必须已安装nodejs。

  可以使用npm安装,当然由于 npm 安装速度慢,也可以使用淘宝的镜像及其命令cnpm(npm install -g cnpm --registry=https://registry.npm.taobao.org),安装使用介绍参照:使用淘宝 NPM 镜像

  使用 cnpm 安装 webpack:

  cnpm install webpack -g

  安装完后,我们可以在本地创建一个目录如project。命令:mkdir project

  在project目录下创建一个index.js文件,代码如下:

  document.write("Hello world!")

  然后在project文件夹下创建index.html文件。代码如下:

  webpack的安装与使用(单文件)

  然后就可以使用webpack命令来打包了。由于我的project是安装在桌面,因此我的操作是:

  webpack的安装与使用(单文件)

  执行以上命令会编译 index.js 文件并生成myScript.js 文件,成功后输出信息如下所示:

  webpack的安装与使用(单文件)

  在浏览器中打开index.html文件,结果如下:

  webpack的安装与使用(单文件)

  下面来创建另一个js文件。index2.js文件代码如下:

  module.exports = "Nothing is impossible!"

  更新index.js文件如下:

  document.write(require("./index2.js"));

  接下来用webpack命令来打包:

  webpack index.js myScript.js

  完成后,在浏览器中打开index.html文件,结果如下:

  webpack的安装与使用(单文件)

  在页面启动时,会先执行index.js文件中的代码,其他模块会在运行require的时候再执行。

  

  Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。

  所以如果我们需要在应用中添加 css 文件,就需要使用到 css-loader 和 style-loader,他们做两件不同的事情,css-loader 会遍历 CSS 文件,然后找到 url() 表达式然后处理他们,style-loader 会把原来的 CSS 代码插入页面中的一个 style 标签中。

  接下来我们使用以下命令来安装 css-loader 和 style-loader(全局安装需要参数 -g)。

  cnpm install style-loader css-loader  (注意是在要运行的js所在的目录环境下安装。也可以选择全局安装,惭愧,我没成功过)

  执行以上命令后,会再当前目录生成 node_modules 目录,它就是 css-loader 和 style-loader 的安装目录。

  接下来创建一个 index.css 文件,代码如下:

  webpack的安装与使用(单文件)

  然后修改index.js中的文件,代码如下:

  webpack的安装与使用(单文件)

  接下来使用webpack来打包:

  webpack index.js myScript.js

  完成后,在浏览器中打开index.html文件,结果如下:

  webpack的安装与使用(单文件)

  require CSS 文件的时候都要写 loader 前缀 !style-loader!css-loader!

  前面说的相对简单些,这里要说的稍微复杂一点的。

  假如css文件存放在style文件夹中,而js文件存放在js文件中呢?这样使用webpack来打包又该如何操作呢?例如此刻我的目录结构是这样的。

  webpack的安装与使用(单文件)

  此时我们需要改两个地方,其一,将index.js文件中的代码改为:

  webpack的安装与使用(单文件)

  然后将index.html加载的js文件的那部分改为:

  webpack的安装与使用(单文件)

  然后使用webpack来打包。命令如下:

  webpack的安装与使用(单文件)

  此时,在浏览器中打开index.html文件,结果如下:

  webpack的安装与使用(单文件)

  补充:

  如:webpack index.js myScript.js -p 表示将打包后的文件进行压缩

  如:webpack index.js myScript.js -w 提供watch方法;实时进行打包更新,即保存后,再刷新页面即可可以看到代码生效了,无需重新运行webpack