美文网首页
webpack项目创建步骤

webpack项目创建步骤

作者: 青乌 | 来源:发表于2020-08-14 09:38 被阅读0次

    本文介绍初步使用webpack的基本步骤,了解更多查看阮一峰老师的深入浅出webpack,这本书是基于webpack3书写的,目前已应用至webpack4,大部分内容还是相同的。

    第一步:通过npm init创建package.json文件

    npm init
    

    第二步:生成node_modules文件

    npm -y
    

    第三步:安装相关依赖
    webpack:包含将代码捆绑到开发和生产版本的核心。
    webpack-cli:用来运行 webpack 的命令行工具。
    webpack-dev-server:一个 HTML 服务器,它将在开发阶段加载我们的代码并提供 HMR 功能。
    webpack-merge:一个 webpack 工具库,允许将 webpack 配置拆分为多个文件。
    ts-loader:处理 TypeScript 文件的模块规则。

    npm install webpack webpack-cli webpack-dev-server webpack-merge ts-loader css-loader style-loader url-loader --save-dev
    //如果使用ts
    npm install -g typescript
    tsc --init
    

    install可简写为i,--global可简写为-g,--save-dev可简写为-D,--save可简写为-S

    第四步:完成如下结构
    目录结构:

    目录结构

    index.html包含内容:

    <!--index.html-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Webpack Example</title>
    </head>
    <body>
        <div id='root'></div>
        <script src="bundle.js"></script>   <!--这是打包之后的js文件,我们命名为bundle.js-->
    </body>
    </html>
    

    hello.js内容如下:

    // hello.js
    module.exports = function() {
        let hello = document.createElement('div');
        hello.innerHTML = "Hello World!";
        return hello;
      };
    

    index.js内容如下:

    //index.js 
    //引入hello.js
    const hello = require('./hello.js');
    document.querySelector("#root").appendChild(hello());
    

    新建webpack.config.js,内容如下:

    // webpack.config.js
    const path = require('path')
    
    module.exports = {
        entry: './src/index.ts',//入口文件
        module: {
            rules: [{
                test: /\.tsx?$/,
                use: 'ts-loader',
                exclude: /node_modules/,
            }, {
                test: /\.css?$/,
                use: [{
                    loader: "style-loader"
                }, {
                    loader: "css-loader"
                }]
            }, {
                test: /\.(png|jpg)$/,
                use: [{
                    loader: 'url-loader',
                    options: {
                        limit: 8192, //对图片的大小做限制,8kb
                        name: 'img/[name].[hash:8].[ext]'
                    },
    
                }]
            }],
        },
        resolve: {
            extensions: ['.tsx', '.ts', '.js'],
        },
        output: {
            filename: 'bundle.js',//输出文件
            path: path.resolve(__dirname, '../dist'),//输出路径
        },
    }
    

    webpack.dev.js

    const { merge } = require('webpack-merge')
    const common = require('./webpack.config.js')
    const path = require('path');
    
    module.exports = merge(common, {
        mode: 'development',
        devtool: 'eval-source-map',
        devServer: {
            static: {
                directory: path.join(__dirname, '../dist'),
            },
            hot: true,
        },
    })
    

    上述就相当于把src文件夹下的index.js文件打包到dist文件下的bundle.js,这时就生成了bundle.js供index.html文件引用。

    然后在package.json中配置scripts:

    "scripts": {
        "dev": "webpack serve --config ./src/webpack.dev.js"
      }
    

    编译:npm build 运行:npm run dev

    相关文章

      网友评论

          本文标题:webpack项目创建步骤

          本文链接:https://www.haomeiwen.com/subject/heawdktx.html