Webpack builds scaffolding to package TypeScript code

Webpack builds scaffolding to package TypeScript code

Create a folder

Directory structure: dabaots

Initialize npm init -y to generate package.json file

Directory structure:
dabaots
dabaots/package.json

Then install the following tools in the development environment

npm i -D

webpack························(The core tool for packaging code
webpack-cli····················(command line tool for webpack)
typescript ······················(the core package required to write ts)
ts-loader ·························(webpack and ts can be integrated through ts-loader)
html-webpack-plugin … (a webpack plugin that automatically generates HTML)
webpack-dev-server … (no need to refresh the update page)
clean-webpack-plugin … (How to regenerate the latest files in dist will be automatically cleared before each package is launched)
"@babel/core" "@babel/preset-env" babel-loader core-js (install babel conversion, it will convert to the code according to your environment)

Small problems that may be encountered: The problem that may occur here is that if the version of the dependency package webpack-dev-server you downloaded is incompatible with Google's, it is recommended to change the plug-in version to a lower level or upgrade Google Chrome to the latest version, otherwise an error "Cannot GET /chrome.exe" will occur

Next, create webpack.config.js for configuration

Directory structure:
dabaots
dabaots/package.json
dabaots/webpack.config.js

// Import a package const path = require("path")

//Introduce the package for automatically generating HTML const HtmlWebpackPlugin = require("html-webpack-plugin")

//Introduce the plugin to update the dist file const {CleanWebpackPlugin} = require("clean-webpack-plugin")

// All configuration information in webpack should be written into moudle.exportsmodule.exports={
    //Specify the entry file entry: "./src/index.ts",
    //Specify the directory where the packaged file is located output:{
        //Specify the directory path of the packaged file:path.resolve(__dirname,"dist"),
        //Specify the file name of the packaged file: "bundle.js",
        //Do not use arrow functions when compiling environment: {
            arrowFunction: false
        }
    },
    
    //Webpack needs to use module when packaging.module:{
        //Specify the rules to load rules:[{
            // test specifies the file test:/\.ts$/ where the rule takes effect.
            // use is the loader to use
            //Configure babel
            use:[
                {//Specify loader loader: "babel-loader",
                    options:{
                        //Set the predefined environment presets:[
                            [
                                //Specify the environment plugin "@babel/preset-env",
                                //Configuration information {
                                    //Browser targets to be compatible:{
                                        "chrome":"88"
                                    },
                                    //Specify the corejs version "corejs":"3",
                                    // means loading on demand "useBuiltIns": "usage"
                                }
                            ]
                        ]
                    }
                },
                'ts-loader'
            ],
            //Set files that are not packaged and uploaded exclude: ["/node_modules/"]
        }]
    },
    
    // Configure webpack plugins:[
        new HtmlWebpackPlugin({
            // Custom html template address template: "./src/index.html"
        }),
        //Each time before packaging and launching, the files in dist will be automatically cleared. How to regenerate the latest files new CleanWebpackPlugin()
    ],
    
    resolve:{
        //Solve the problem of error when introducing other ts packages separately in ts files extensions:['.ts','.js']
    }
}

Finally, write the packaging and running scripts in package.json

In the terminal, npm run build package and run

After successful packaging, a dist file will be automatically generated

npm run start automatically opens Google Chrome and the content is hot updated

This is the end of this article about webpack scaffolding and TypeScript code packaging. For more relevant webpack TypeScript code packaging content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • TypeScript enumeration basics and examples
  • In-depth reading and practice records of conditional types in TypeScript
  • Typescript+react to achieve simple drag and drop effects on mobile and PC
  • Implementation of TypeScript in React project
  • Practical record of Vue3 combined with TypeScript project development
  • Vue3 + TypeScript Development Summary
  • Vue3+TypeScript implements a complete example of a recursive menu component
  • How to use TypeScript in Vue
  • A brief discussion on the understanding of TypeScript index signatures

<<:  Analyzing the MySql CURRENT_TIMESTAMP function by example

>>:  Summary of some common writing methods that cause MySQL index failure

Recommend

A method of hiding processes under Linux and the pitfalls encountered

Preface 1. The tools used in this article can be ...

WeChat applet development form validation WxValidate usage

I personally feel that the development framework ...

The image element img has extra blank space in IE6

When doing DIV+CSS layout of the page, it is very...

Sample code using vue-router in html

Introducing vue and vue-router <script src=&qu...

mysql5.7.14 decompressed version installation graphic tutorial

MySQL is divided into Community Edition (Communit...

Explanation of the basic syntax of Mysql database stored procedures

drop procedure sp_name// Before this, I have told...

HTML table markup tutorial (9): cell spacing attribute CELLSPACING

A certain distance can be set between cells in a ...

How to create a database in navicat 8 for mysql

When developing a website, you often need to use ...

Teach you how to install docker on windows 10 home edition

When I wrote the Redis book and the Spring Cloud ...

MySQL group query optimization method

MySQL handles GROUP BY and DISTINCT queries simil...

Analyze the difference between ES5 and ES6 apply

Table of contents Overview Function signature Opt...

A brief discussion on spaces and blank lines in HTML code

All consecutive spaces or blank lines (newlines) ...