webpack学习记录(一)-起步

基本安装

首先建一个你的项目工程目录,初始化npm,在本地安装webpack以及webpack-cli

mkdir webpack-demo
cd webpack-demo
npm init -y
npm install webpack webpack-cli --save-dev

现在进入该项目目录,创建下面这个目录结构

webpack-demo
????|- package.json
+??|- index.html
+??|- /src
+???? |- index.js

src/index.js

function component() {
  var element = document.createElement('div');

  // Lodash(目前通过一个 script 脚本引入)对于执行这一行是必需的
  element.innerHTML = _.join(['Hello', 'webpack'], ' ');

  return element;
}

document.body.appendChild(component());

index.html

<!doctype html>
<html>
  <head>
    <title>起步</title>
    <script src="https://unpkg.com/[email protected]"></script>
  </head>
  <body>
    <script src="./src/index.js"></script>
  </body>
</html>

调整package.json,确保安装包是私有的(private)

  {
    "name": "webpack-demo",
    "version": "1.0.0",
 +   "description": "",
    "private": true,
    "main": "index.js",    //官网说把这个删了,然而删除后就编译失败了
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "devDependencies": {
      "webpack": "^4.0.1",
      "webpack-cli": "^2.0.9"
    },
    "dependencies": {}
  }

新建一个目录用于存放分发代码,也就是我们打包后的文件,与我们编写代码的src目录分离,目录结构如下:

webpack-demo
??|- package.json
+?|- /dist
+????|- index.html
-?|- index.html
??|- /src
???? |- index.js

在本地安装依赖,脚本中添加lodash依赖

npm install --save lodash

src/index.js

+ import _ from 'lodash';
+
  function component() {
    var element = document.createElement('div');

-   // Lodash, currently included via a script, is required for this line to work
+   // Lodash, now imported by this script
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');

    return element;
  }

  document.body.appendChild(component());

更新 index.html 文件,修改 script标签来加载 bundle,而不是原始的 /src 文件:

dist/index.html

  <!doctype html>
  <html>
   <head>
     <title>起步</title>
-    <script src="https://unpkg.com/[email protected]"></script>
   </head>
   <body>
-    <script src="./src/index.js"></script>
+    <script src="main.js"></script>
   </body>
  </html>

在项目内执行命令npx webpack 以src目录下的index.js作为入口起点,输出为main.js,此时我们执行index.html就可以看到 ‘Hello webpack’

使用一个配置文件

在项目根目录下新建一个webpack.config.js配置文件

webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',  //项目入口文件
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')  //输出文件路径
  }
};

为了方便使用webpack修改package.json添加npm脚本

package.json

  {
    "name": "webpack-demo",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
+     "build": "webpack"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "devDependencies": {
      "webpack": "^4.0.1",
      "webpack-cli": "^2.0.9",
      "lodash": "^4.17.5"
    }
  }

这样我们就可以使用npm run build代替npx命令
PS:以上是根据webpack官网案例学习记录一下自己的理解,如有错误请指正。

原文地址:https://www.cnblogs.com/yanggl/p/10291908.html

时间: 2024-10-29 03:14:09

webpack学习记录(一)-起步的相关文章

webpack学习记录(十二)-区分不同环境

webpack学习记录(十二)-区分不同环境 定义全局变量 使用webpack内置的插件DefinePlugin 允许创建一个在编译时可以配置的全局常量. 用法 //在webpack.config.js中配置插件 new webpack.DefinePlugin({ PRODUCTION: JSON.stringify(true) }) //在index.js中使用定义的变量 if (!PRODUCTION) { console.log('Debug info') } if (PRODUCTIO

webpack学习记录(九)-小插件应用

webpack学习记录(九)-小插件应用 clean-webpack-plugin 每次输出之前先删除之前的目录,即每次输出都是最新的打包文件 安装及配置 npm i clean-webpack-plugin -D // 注意该插件引入方式需要用解构赋值才有效 const {CleanWebpackPlugin} = require('clean-webpack-plugin') module.exports = { plugins: [ new CleanWebpackPlugin() ] }

webpack学习记录(十)-跨域

webpack学习记录(十)-跨域 准备工作 建一个简单的服务端 const express = require('express') let app = express() app.get('/api/user', (req,res) => { res.json({msg:'服务器启动'}) ) app.listen(3000) 发送一个请求 let xhr = new XMLHttpRequest() xhr.open('get','/api/user',true) xhr.onload =

webpack学习记录

1.最近没事做就学习了一下webpack,因为之前有接触过seajs和requirejs但是他们都没打包和webpack那么强大 WebPack的特点 丰富的插件,方便进行开发工作 大量的加载器,包括加载各种静态资源 代码分割,提供按需加载的能力 发布工具 那我们直接进入正题: 因为webpack是基于nodejs的,所以本地要安装下nodejs  npm 安装那两个我就不多说啦,网上教程一大堆. WebPack的安装 安装命令 $ npm install webpack -g 使用webpac

webpack学习记录(二)-管理资源

在 webpack 出现之前,前端开发人员会使用 grunt 和 gulp 等工具来处理资源,并将它们从 /src 文件夹移动到 /dist 或 /build 目录中.同样方式也被用于 JavaScript 模块,但是,像 webpack 这样的工具,将动态打包(dynamically bundle)所有依赖项(创建所谓的依赖图(dependency graph)).这是极好的创举,因为现在每个模块都可以明确表述它自身的依赖,我们将避免打包未使用的模块. webpack 最出色的功能之一就是,除

Webpack 学习记录-02

想在HTMl页面中生成内联的JS代码: index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><%= htmlWebpackPlugin.options.title %></title> <script type="text/javascript"&g

Webpack 学习记录-01

Webpack 2.0系列 1,output path路径必须为absolute path. { entry: './src/app.js', output: { filename: 'bundle.js', path: __dirname + '/build' } }   output.path  The output directory as an absolute path (required). 若写为:  path:"./dist/js"   则报错如下:Invalid co

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac