https://github.com/peakchen90/assets-manifest-plugin
A webpack plugin for entry assets manifest. 一个生成入口资源清单的webpack插件
https://github.com/peakchen90/assets-manifest-plugin
assets entrypoints manifest plugin webpack webpack-plugin
Last synced: 7 months ago
JSON representation
A webpack plugin for entry assets manifest. 一个生成入口资源清单的webpack插件
- Host: GitHub
- URL: https://github.com/peakchen90/assets-manifest-plugin
- Owner: peakchen90
- License: mit
- Created: 2020-04-01T07:17:21.000Z (almost 6 years ago)
- Default Branch: dev
- Last Pushed: 2022-03-26T10:39:18.000Z (almost 4 years ago)
- Last Synced: 2025-04-16T09:15:10.941Z (11 months ago)
- Topics: assets, entrypoints, manifest, plugin, webpack, webpack-plugin
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/assets-manifest-plugin
- Size: 59.6 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# assets-manifest-plugin
A webpack plugin for entry assets manifest.
一个生成入口资源清单的webpack插件
[](https://travis-ci.org/peakchen90/assets-manifest-plugin)
[](https://www.npmjs.com/package/assets-manifest-plugin)
[](https://github.com/peakchen90/assets-manifest-plugin/blob/master/LICENSE)
## 安装
```bash
npm i -D assets-manifest-plugin
# or
yarn add -D assets-manifest-plugin
```
## 配置
> webpack.config.js
```js
const AssetsManifestPlugin = require('assets-manifest-plugin');
module.exports = {
// ...
plugins: [
new AssetsManifestPlugin({
filename: 'manifest.js'
})
]
}
```
打包完成后会输出类似下面的一个文件:
> dist/manifest.js
```js
(function(root, factory) {
if (typeof exports === 'object' && typeof module === 'object') {
module.exports = factory();
} else if (typeof define === 'function' && define.amd) {
define(factory);
} else if (typeof exports === 'object') {
exports['ASSETS_MANIFEST'] = factory();
} else {
root['ASSETS_MANIFEST'] = factory();
}
})(typeof window !== 'undefined' ? window : this, function() {
return {
"main": {
"js": [
"js/runtime.6b509e0d.js",
"js/vendors.066af6ec2.js",
"js/main.5f10cd1d.js"
],
"css": [
"css/vendors.ac89822e.css",
"css/main.5ceab323.css"
]
}
}
});
```
## 配置选项
#### entries
- 类型: `'all' | Array`
- 默认: `'all'`
- 描述: 需要生成资源清单的 entry 名,如果设置为 `'all'`,表示生成全部入口资源清单
#### publicPath
- 类型: `string`
- 默认: `null`
- 描述: 在生成的资源清单路径前加的一段路径,如果该项未配置,则会去使用 `output.publicPath` 的值
#### filename
- 类型: `string`
- 默认: `'manifest.js'`
- 描述: 生成的入口清单文件名(可以带路径),如果是文件格式是 `.js`,这会输出一个 UMD 模块文件,如果文件格式是 `.json`,则输出一个 JSON 文件,推荐生成 UMD 模块
#### minify
- 类型: `'auto' | boolean`
- 默认: `'auto'`
- 描述: 是否压缩生成的资源清单文件,如果设置为 `'auto'`,表示根据 `optimization.minimize` 自动判断是否需要压缩
#### globalName
- 类型: `string`
- 默认: `'ASSETS_MANIFEST'`
- 描述: 生成 UMD 模块的全局变量名
#### disabled
- 类型: `boolean`
- 默认: `false`
- 描述: 是否禁用插件
#### shouldEmit
- 类型: `boolean`
- 默认: `true`
- 描述: 是否将入口资源清单输出到文件
#### merge
- 类型: `boolean`
- 默认: `false`
- 描述: 是否合并之前的资源清单数据(一般用于多个webpack任务打包时共用一份清单文件)
#### onEmit
- 类型: `(manifest, mergedManifest) => void`
- 默认: `null`
- 描述: 当生成入口资源清单时,执行回调。回调参数是一个包含资源清单的 JSON 对象
#### devServerAutoPublicPath
- 类型: `boolean`
- 默认: `true`
- 描述: 当前是 devServer 模式时,自动设置 publicPath (`http://[ip]:[port]/[publicPath]`)