美文网首页
Entry与OutPut的基本配置

Entry与OutPut的基本配置

作者: 5cc9c8608284 | 来源:发表于2022-04-12 09:47 被阅读0次

本学习教程使用的webpack及脚手架对应的版本如下:
"webpack": "^4.25.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.11.3"

1.Entry与OutPut的基本配置

output参考链接
entry参考链接

module.exports = {
    mode: 'development',
    entry: './src/index.js', //入口文件为当前目录下的src下的index.js文件
    output: {
        path: path.resolve(__dirname, 'bundle'), //__dirname:表示当前文件所在的文件目录,也就是项目根目录,打包生成的文件放在bundle目录下
        filename: 'main.js', //打包后的文件名
    },
}

这就是entry和output的最基本的配置了,但是如果我们想对入口和出口做一些更加定制化的配置,我们该怎么做呢?比如说我们想对src/index.js文件配置两次,一次生成的打包文件名为main,一次生成的打包文件名为sub,那么我们应该怎么去做呢?这个时候我们就需要修改一下我们的配置文件了,如下所示:

module.exports = {
    mode: 'development',
    entry: {
        main: './src/index.js', //入口文件为当前目录下的src下的index.js文件
        sub: './src/index.js', //入口文件为当前目录下的src下的index.js文件
    },
    output: {
        path: path.resolve(__dirname, 'bundle'), //__dirname:表示当前文件所在的文件目录,也就是项目根目录,打包生成的文件放在bundle目录下
        filename: '[name].js', //在这里动态获取打包生成的文件打包后的文件名
    },
}

这样修改完成后,再次对代码进行打包,打包完成后,在bundle目录下就生成了两个js文件,一个main.js,另一个是sub.js.

2.Entry与OutPut将打包生成的js文件放到cdn上

按照上面的配置,最终打包生成的index.html文件中,会自动帮我们引入两个js文件,代码如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Webpack App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script defer src="main.js"></script>
    <script defer src="sub.js"></script>
  </head>
  <body></body>
</html>

如果我们需要将生成的js代码放到cdn地址上应该怎么做呢?这个时候我们就需要在output中添加一个publicPath的配置了,代码如下:

var path = require('path'); //引入node的核心模块path,来处理路径
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    mode: 'development',
    entry: {
        main: './src/index.js', //入口文件为当前目录下的src下的index.js文件
        sub: './src/index.js', //入口文件为当前目录下的src下的index.js文件
    },
    output: {
        publicPath: 'http://cdn.com.cn',//添加一个publicPath,来表示生成的js文件所对应的cdn地址
        path: path.resolve(__dirname, 'bundle'), //__dirname:表示当前文件所在的文件目录,也就是项目根目录,打包生成的文件放在bundle目录下
        filename: '[name].js', //在这里动态获取打包生成的文件打包后的文件名
    },
    module: {
        rules: [{
                test: /\.(jpe?g|png|gif|svg)$/,
                use: {
                    loader: 'url-loader',
                    options: {
                        name: '[name]_[hash:6]. [ext]',
                        outputPath: 'images',
                        limit: 204800 //表示当图片的大小超过200kb时,将其打包生成图片
                    }
                }
            },
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            },
            {
                test: /\.scss$/,
                use: ['style-loader', {
                    loader: 'css-loader',
                    options: {
                        importLoaders: 2,
                        modules: true
                    }
                }, 'sass-loader', 'postcss-loader']
            },
        ]
    },
    plugins: [new HtmlWebpackPlugin()],

}

再次打包代码,打包完成后,我们的index.html中webpack帮我们引入的js代码就变成了下面这样:

    <script defer src="http://cdn.com.cn/main.js"></script>
    <script defer src="http://cdn.com.cn/sub.js"></script>

这就是webpack output和entry的最基本的使用了,想了解更多可以参考官网
作业:document/guides/output management

相关文章

  • webpack 常见基础配置

    # Talk is cheap! 上代码 #### 配置entry、output #### 配置loader ##...

  • 学习webpack【第三章-核心概念1】

    一、loader 二、plugin 三、entry与output的基础配置 四、SourceMap配置 五、使用w...

  • webpack learning note

    核心概念 入口(entry)、输出(output)、loader、插件(plugins) 配置 entry 指定入...

  • Webpack Express React Hot Reloa

    webpack 基本配置 entry:要打包文件output:打包文件位置module:打包要加载的模块--pre...

  • test2

    webpack的配置及基本运行原理 能分清loader和plugins区别 核心概念:entry,output,l...

  • test

    webpack的配置及基本运行原理 能分清loader和plugins区别 核心概念:entry,output,l...

  • 03-04.Entry与Output的基础配置

    Entry与Output的基础配置 当我们在使用webpack进行打包的时候,使用entry来定义我们的入口文件,...

  • Webpack相关

    一、概念 1、基本组成:entry、output、loader、plugins entry: 入口起点(entry...

  • webpack的通用配置(2)-plugins

    在上一节主要讲了webpack配置文件的基本概念,比如entry, output, mode, loaders。这...

  • 2019-06-02

    webpack打包的原理:webpack都有entry、module、loader、chunk、output等配置...

网友评论

      本文标题:Entry与OutPut的基本配置

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