使用 Webpack + TypeScript 来创建项目【持续更新】

第一步、安装nodejs;

第二步、创建项目文件夹,在该项目下执行npm init命令;

第三步、执行npm i -D webpack webpack-cli typescript ts-loader命令,导入项目所需依赖;

第四步、在根目录下创建webpack.config.js文件,引入webpack相关配置,在package.json文件中加入脚本"build": "webpack"

// 引入依赖
const path = require('path');

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js"
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: 'ts-loader',
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  }
}

第五步、在根目录下创建tsconfig.json文件,写入tsconfig相关配置;

{
  "compilerOptions": {
    "module": "ES2015",
    "target": "ES2015",
    "strict": true,
  }
}

第六步、在根目录下创建src文件夹,存放项目全部资源;

第七步、执行npm i -D html-webpack-plugin ,引入html-webpack-plugin插件来创建HTML入口文件,接着在webpack.config.js文件中引入该插件;

// 引入依赖
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin'); // 生成HTML入口文件

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js"
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: 'ts-loader',
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  },

  plugins: [
    new HTMLWebpackPlugin({
      title: "自定义HTML文件的Title"
    }),
  ],
}

第八步、执行npm i -D webpack-dev-server,引入webpack-dev-server插件来帮助项目热启动,在package.json文件中加入脚本"start": "webpack serve --open chrome.exe"

第九步、执行npm i -D clean-webpack-plugin,引入clean-webpack-plugin插件来帮助项目每次执行webpack打包前先清空打包输出文件夹dist,接着在webpack.config.js中引用该插件;

// 引入依赖
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin'); // 生成HTML入口文件
const { CleanWebpackPlugin } = require('clean-webpack-plugin');// 清空dist

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js"
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: 'ts-loader',
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  },

  plugins: [
    new CleanWebpackPlugin(),
    new HTMLWebpackPlugin({
      title: "自定义HTML文件的Title"
    }),
  ],
}

第十步、在webpack.config.js文件中解决在打包时找不到js和ts模块文件;

// 引入依赖
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin'); // 生成HTML入口文件
const { CleanWebpackPlugin } = require('clean-webpack-plugin'); // 清空dist

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js"
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: 'ts-loader',
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  },

  plugins: [
    new CleanWebpackPlugin(),
    new HTMLWebpackPlugin({
      title: "自定义HTML文件的Title"
    }),
  ],

  // 用来设置引用的模块
  resolve: {
    extensions: ['.ts', '.js'],
  }
}

第十一步,执行npm i -D @babel/core @babel/preset-env babel-loader core-js,安装babel所需的依赖,并在webpack.config.js文件中配置babelcorejs

// 引入依赖
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin'); // 生成HTML入口文件
const { CleanWebpackPlugin } = require('clean-webpack-plugin'); // 清空dist

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js",
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: [
          {
            // 指定加载器
            loader: 'babel-loader',
            options: {
              // 设置预定义的环境
              presets: [
                [
                  // 指定环境的插件
                  "@babel/preset-env",
                  // 配置信息
                  {
                    targets: {
                      "chrome": "100",
                      "ie": "11",
                    },
                    // 指定corejs的版本
                    "corejs": "3",
                    // 使用corejs的方式 "usage" 表示按需加载
                    "useBuiltIns": "usage",
                  }
                ]
              ]
            }
          },
          'ts-loader'// 先将ts转化成js,再用babel将js转化
        ],
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  },

  plugins: [
    new CleanWebpackPlugin(),
    new HTMLWebpackPlugin({
      title: "自定义HTML文件的Title"
    }),
  ],

  // 用来设置引用的模块
  resolve: {
    extensions: ['.ts', '.js'],
  }
}

第十二步,在webpack.config.js文件中配置,使webpack在打包时不使用箭头函数(兼容IE)。

// 引入依赖
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin'); // 生成HTML入口文件
const { CleanWebpackPlugin } = require('clean-webpack-plugin'); // 清空dist

// webpack所有配置信息
module.exports = {
  // 是否压缩  development - 不压缩  production - 压缩
  mode: 'development',
  // 文件入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在目录
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "bundle.js",
    // 让webpack兼容IE11, 不使用箭头函数
    environment: {
      arrowFunction: false, // 箭头函数
    }
  },

  // 指定webpack打包时要使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定什么类型的文件
        test: /\.ts$/,
        // 要使用的loader
        use: [
          {
            // 指定加载器
            loader: 'babel-loader',
            options: {
              // 设置预定义的环境
              presets: [
                [
                  // 指定环境的插件
                  "@babel/preset-env",
                  // 配置信息
                  {
                    targets: {
                      "chrome": "100",
                      "ie": "11",
                    },
                    // 指定corejs的版本
                    "corejs": "3",
                    // 使用corejs的方式 "usage" 表示按需加载
                    "useBuiltIns": "usage",
                  }
                ]
              ]
            }
          },
          'ts-loader'// 先将ts转化成js,再用babel将js转化
        ],
        // 要排除的文件(夹)
        exclude: /node-modules/
      }
    ]
  },

  plugins: [
    new CleanWebpackPlugin(),
    new HTMLWebpackPlugin({
      title: "自定义HTML文件的Title"
    }),
  ],

  // 用来设置引用的模块
  resolve: {
    extensions: ['.ts', '.js'],
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,你需要了解一下Webpack和Layui分别是什么。Webpack是一个模块打包工具,它可以将多个模块打包成一个或多个文件。而Layui是一个基于jQuery的前端UI框架,它提供了一些常用的UI组件和简洁的CSS样式。 下面是一些简单的步骤,可以帮助你创建一个基于Webpack和Layui的后台项目: 1.初始化项目 在命令行中创建一个新的项目文件夹并初始化它: ``` mkdir my-project cd my-project npm init -y ``` 2.安装依赖 安装Webpack和Layui的依赖包: ``` npm install webpack webpack-cli layui --save-dev ``` 3.创建Webpack配置文件 在项目根目录下创建一个名为`webpack.config.js`的文件,并添加以下代码: ```javascript const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') } }; ``` 这个配置文件告诉Webpack将`src/index.js`作为入口文件,将打包后的文件输出到`dist/bundle.js`。 4.创建HTML文件和Layui样式 在项目根目录下创建一个名为`index.html`的文件,并添加以下代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>My App</title> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md12"> <h1>Hello, World!</h1> </div> </div> </div> <script src="bundle.js"></script> </body> </html> ``` 这个HTML文件引入了Layui的CSS文件和Webpack打包后的JavaScript文件。 在项目根目录下创建一个名为`style.css`的文件,并添加以下代码: ```css body { background-color: #f2f2f2; } ``` 这个CSS文件设置了页面的背景颜色。 5.创建JavaScript文件 在项目根目录下创建一个名为`src/index.js`的文件,并添加以下代码: ```javascript import '../style.css'; import layui from 'layui'; layui.use(function(){ var $ = layui.$; console.log($); }); ``` 这个JavaScript文件引入了上一步创建的CSS文件,并使用了Layui的模块。 6.打包项目 在命令行中运行以下命令打包项目: ``` npx webpack ``` 这个命令将会使用Webpack打包项目,并将打包后的文件输出到`dist/bundle.js`。 7.运行项目 在浏览器中打开`index.html`文件,你应该能够看到一个灰色背景的页面,并在浏览器的控制台中看到Layui输出的一些信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alert.GoSt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值