webpack項目創(chuàng)建步驟

本文介紹初步使用webpack的基本步驟,了解更多查看阮一峰老師的深入淺出webpack,這本書是基于webpack3書寫的,目前已應用至webpack4,大部分內容還是相同的。

第一步:通過npm init創(chuàng)建package.json文件

npm init

第二步:生成node_modules文件

npm -y

第三步:安裝相關依賴
webpack:包含將代碼捆綁到開發(fā)和生產版本的核心。
webpack-cli:用來運行 webpack 的命令行工具。
webpack-dev-server:一個 HTML 服務器,它將在開發(fā)階段加載我們的代碼并提供 HMR 功能。
webpack-merge:一個 webpack 工具庫,允許將 webpack 配置拆分為多個文件。
ts-loader:處理 TypeScript 文件的模塊規(guī)則。

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容