当前位置: 首页 > news >正文

webpack 项目实战

步骤一:

npm init

步骤二:

npm install -D clean-webpack-plugin css-loader extract-text-webpack-plugin html-webpack-plugin mini-css-extract-plugin style-loader webpack webpack-cli webpack-dev-server

步骤三:

npm install -S jquery

步骤四:

创建 webpack.config.js

// 直接path
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin'); //
const CleanWebpackPlugin = require('clean-webpack-plugin'); // 清除旧文件
var HtmlWebpackPlugin = require('html-webpack-plugin'); // 页面热加载
var webpack = require('webpack');

module.exports = {
  mode: 'development',
  entry: './main.js', // 入口文件
  output: { // 出口
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].[hash].js' // 名称
  },
  devServer: { // webpack 本地服务
    contentBase: path.join(__dirname, 'dist'),
    compress: true,
    port: 9000
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      }
    ]
  },
  plugins: [ // 插件集
    new ExtractTextPlugin("[name].[hash].css"), // 输出css版本
    new CleanWebpackPlugin(['dist']), // 清除dist文件夹下的内容
    new HtmlWebpackPlugin({ // 自动生成html文件
      template: 'index.html'
    }),
    new webpack.ProvidePlugin({ // 引入第三方插件(自动加载模块)
      $: 'jquery',
      jQuery: 'jquery'
    }),
    new webpack.DefinePlugin({ // 定义全局变量
      'env': JSON.stringify('www://aaa/com')
    })
  ],
  optimization: {
    splitChunks: {
      filename: 'common.js',
      chunks: 'all'
    }
  }
};

步骤五:

package.json

{
  "name": "webpack_test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "webpack-dev-server --inline",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^0.1.19",
    "css-loader": "^0.28.11",
    "extract-text-webpack-plugin": "^3.0.2",
    "html-webpack-plugin": "^3.2.0",
    "mini-css-extract-plugin": "^0.4.0",
    "style-loader": "^0.21.0",
    "webpack": "^4.12.0",
    "webpack-cli": "^3.0.8",
    "webpack-dev-server": "^3.1.4"
  },
  "dependencies": {
    "jquery": "^3.3.1"
  }
}

步骤六:

项目目录

store/age.js

const age = 18;

module.exports = age;

store/name.js

const name = '小明';

module.exports = name;

main.js

// 引入 age.js
const age = require('./store/age.js');
// 引入 name.js
const name = require('./store/name.js');

import login from './style/common.css';

console.log(`${name}的年龄是${age}`);

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>React App</title>
  </head>
  <body>
    <div>React App</div>
  </body>
</html>

.

 

转载于:https://www.cnblogs.com/crazycode2/p/9206321.html

相关文章:

  • 做创业狼之前请看看这篇文章
  • json字符串转JSONObject和JSONArray以及取值
  • php计算时间差的方法
  • 前端路由实现-history
  • SQLServer 2008 删除、压缩日志
  • 【51nod1472】取余最大值
  • elasticsearch系列四:搜索详解(搜索API、Query DSL)
  • Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
  • OPENGL学习笔记整理(五):着色语言
  • Python3学习笔记16-错误和异常
  • 轻量级node-cache源码分析一波
  • 迭代器失效
  • OSChina 周六乱弹 —— 假如你被熊困到树上
  • 改变像素
  • Unix目录结构的来历
  • (三)从jvm层面了解线程的启动和停止
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular 响应式表单之下拉框
  • CEF与代理
  • ES6之路之模块详解
  • JavaScript 奇技淫巧
  • Javascript基础之Array数组API
  • LintCode 31. partitionArray 数组划分
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • quasar-framework cnodejs社区
  • Zepto.js源码学习之二
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 反思总结然后整装待发
  • 聊聊redis的数据结构的应用
  • 新版博客前端前瞻
  • 一天一个设计模式之JS实现——适配器模式
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 如何用纯 CSS 创作一个货车 loader
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (3)选择元素——(17)练习(Exercises)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计ssm电影分享网站
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转载)利用webkit抓取动态网页和链接
  • ./configure、make、make install 命令
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .naturalWidth 和naturalHeight属性,
  • .NET Core Web APi类库如何内嵌运行?
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core开源商城系统源码,支持可视化布局小程序
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [autojs]autojs开关按钮的简单使用
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue