手把手教你webpack3(3)入口(多入口)entry

简介:

前注:

文档全文请查看 根目录的文档说明

如果可以,请给本项目加【Star】和【Fork】持续关注。

有疑义请点击这里,发【Issues】。

3、入口(多入口)

示例目录

在上面的webpack.config.js中,有如下代码:

// 入口文件,指向app.js
entry: './app.js',

以上代码相当于:

entry: {
    main: './app.js'
}

如果是普通的项目(单入口),那么按照上面的方式写(entry: './app.js')就可以了。

至于下面的方式是什么呢?答案是:用于提供【多入口】的解决方案。

假如我一个项目里,允许有A、B两个html文件,他们之间是不同的入口文件(比如一个是用户入口页,一个是管理入口页)。

显然虽然是两个不同的入口,但是他们之间有很多共通的逻辑(否则就有大量重复开发工作了),因此我们需要将其写在同一个工程中,然后通过不同的入口文件引入他。

他的依赖树可能是这样的:

.
|____first.html
| |____first.js
| | |____common.js
|____second.html
| |____second.js
| | |____common.js

也就是说,first.jssecond.js两个文件,都共享一个common.js模块。

如示例代码点击查看github

核心代码如下:

// webpack.config.js
...
entry: {
    first: './first_entry.js',
    second: './second_entry.js'
},
...

当然,只配置入口,是无法正常运行的,会报错:

Multiple assets emit to the same filename

意思就是,你把多入口文件打包到一个文件里了,这样是不对的。

因此我们应当这样配置:

output: {
    // 文件名,将打包好的导出为bundle.js
    filename: './dist/[name].js'
}

这段代码的意思是:

  1. 将多入口文件,打包到dist文件夹下;
  2. 并且名字根据入口文件决定;
  3. [name]表示文件名自动匹配入口文件的key(即first: './first_entry.js'里面的first);

fork本项目,并且在本文件夹下执行npm run test来打包,然后打开first.htmlsecond.html来查看效果(见控制台console)

目录
相关文章
|
JavaScript
Vue课程8-指定webpack的entry和output
Vue课程8-指定webpack的entry和output
151 0
Vue课程8-指定webpack的entry和output
|
缓存 JavaScript 持续交付
手摸手 Webpack 多入口配置实践
最近在做项目的时候遇到了一个场景:一个项目有多个入口,不同的入口,路由、组件、资源等有重叠部分,也有各自不同的部分。由于不同入口下的路由页面有一些是重复的,因此我考虑使用 Webpack 多入口配置来解决这个需求。
手摸手 Webpack 多入口配置实践
一款用于包装 Entry 配置的 Webpack 插件
Entrypoint wrapper webpack plugin是一款用于包装 Entry 配置的 Webpack 插件。
|
JavaScript 前端开发 数据格式
webpack多入口多出口的实现
webpack是一个优秀的打包平台, 可以把sass, 图片, 字体等静态资源全部打包到js中 作者最近在改造一个传统的静态网站, 为了减少http请求, 其中一个策略就是,把单个静态网页对应的多个静态资源(如字体, css, 图片, js), 打包...
2431 0
走近webpack(1)--多入口及devServer的使用
  上一篇文章留下了一些问题,如果你没看过上一篇文章,可以在我的博客里查找,或者直接从这篇文章开始也是没问题的。  const path = require('path'); module.exports={ entry:{ entry:'.
1209 0
|
2月前
|
JavaScript
webpack打包TS
webpack打包TS
132 60
|
1月前
|
缓存 前端开发 JavaScript
Webpack 打包的基本原理
【10月更文挑战第5天】
|
1月前
|
前端开发 JavaScript
ES6模块化和webpack打包
【10月更文挑战第5天】
|
1月前
|
缓存 前端开发 JavaScript
深入了解Webpack:模块打包的革命
【10月更文挑战第11天】深入了解Webpack:模块打包的革命