什么是 entry,output

236 阅读1分钟

什么是 entry,output

 

entry

告诉webpack使用哪个文件作为构建依赖图的起点,比如指定app.js作为entry,webpack会分析app.js使用到的模块,并解析模块中使用到的模块以此类推,最终将前端静态资源按一定规则打包成一个或多个静态文件。

 

多个entry

 

一个项目可能有多个入口,首先多页面程序可能有多个entry,SPA应用也可能有多个入口(框架代码一个entry,业务代码一个entry)

 

entry的值

 

可以是 字符串 || 数组 || 对象 无论采用何种方式,entry都是入口的文件路径。

webpack.conf.js

module.exports ={

// entry: './app.js'  //字符串

//entry: ['./app.js',  './index.js']  数组形式

// 推荐对象格式 更加清晰和灵活

 entry: {

Index:'./index.js',

app:'./app.js'

}

}

 

output

一个模块化开发项目开发完成后到上线前,一般需要借助webpack打包生成dist目录,比如我们使用vue-cli工具执行npm run build后会在项目的主目录下生成dist目录(如果不了解vue-cli没关系,暂时知道这个事实即可),那么这个dist目录以及打包后的文件名就是借助vue-cli已经内置好的webpack配置文件,指定了dist目录,和打包后生成的文件名。

 

简单来说,output就是告诉webpack通过入口entry按照模块依赖关系将打包好后的文件输出到哪里(指定文件夹或位置)以及文件名(打包后的文件bundles叫什么)。

最后线上环境会使用打包好的文件。

 

const config = {

    entry: {

        app: './xx/app.js' // 入口文件路径 并不一定是'./app.js'

    },

    output: {

        path: '/home/xx',   // 绝对路径

        // filename: 'bundle.js'

        filename: '[name].[hash:7].js' //采用hash动态生成文件名

 

    }

}