{"id":13477528,"url":"https://github.com/foray1010/chrome-manifest-loader","last_synced_at":"2025-04-23T01:07:54.536Z","repository":{"id":37458340,"uuid":"82461381","full_name":"foray1010/chrome-manifest-loader","owner":"foray1010","description":"Chrome manifest loader for webpack","archived":false,"fork":false,"pushed_at":"2025-04-22T01:41:22.000Z","size":2786,"stargazers_count":9,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-23T01:07:47.683Z","etag":null,"topics":["chrome","chrome-extension","firefox","firefox-extension","loader","opera","opera-extension","web-extension","webpack","webpack-loader"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foray1010.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-02-19T13:35:59.000Z","updated_at":"2025-04-19T06:06:25.000Z","dependencies_parsed_at":"2023-12-18T02:28:01.203Z","dependency_job_id":"712b9192-9472-4bd0-b52a-ba5f977dbe42","html_url":"https://github.com/foray1010/chrome-manifest-loader","commit_stats":{"total_commits":558,"total_committers":6,"mean_commits":93.0,"dds":0.3100358422939068,"last_synced_commit":"b76b21d3f163e3ad6624ff993431227fe83fe1b8"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foray1010%2Fchrome-manifest-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foray1010%2Fchrome-manifest-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foray1010%2Fchrome-manifest-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foray1010%2Fchrome-manifest-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foray1010","download_url":"https://codeload.github.com/foray1010/chrome-manifest-loader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250349055,"owners_count":21415914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","chrome-extension","firefox","firefox-extension","loader","opera","opera-extension","web-extension","webpack","webpack-loader"],"created_at":"2024-07-31T16:01:44.068Z","updated_at":"2025-04-23T01:07:54.518Z","avatar_url":"https://github.com/foray1010.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# chrome-manifest-loader\n\n```sh\nnpm install --save-dev chrome-manifest-loader extract-loader file-loader\n```\n\nChrome manifest loader for webpack\n\n- support Chrome, Firefox and Opera `manifest.json`\n\n- import assets that is defined in `manifest.json`\n\n- map `package.json` version to `manifest.json` version\n\n## Development Setup\n\nWe are using [corepack](https://nodejs.org/api/corepack.html) to manage the `yarn` version\n\n```bash\ncorepack enable\n```\n\n## Usage\n\nfirst, import `manifest.json` in your index js once\n\n### Require assets and map the asset path\n\nWrap your asset path with `require()`\n\n- the asset path should be relative to current `manifest.json` path\n\n- if no `./` or `../` prefix, it will be consider as under `node_modules`\n\n`webpack.config.js`\n\n```js\n{\n  \"module\": {\n    \"rules\": [\n      {\n        test: /\\/manifest\\.json$/,\n        use: [\n          {\n            loader: 'file-loader',\n            options: {\n              name: '[name].[ext]'\n            }\n          },\n          'extract-loader',\n          'chrome-manifest-loader'\n        ],\n        // needed for webpack 4 to override default json loader\n        type: 'javascript/auto'\n      }\n    ]\n  }\n}\n```\n\n`manifest.json`\n\n```json\n{\n  \"icon\": {\n    \"16\": \"require(./img/icon16.png)\"\n  }\n}\n```\n\n**output**\n\n```json\n{\n  \"icon\": {\n    \"16\": \"file path defined by other loader, eg: file-loader\"\n  }\n}\n```\n\n### Map package.json version to manifest.json version\n\nOption: `mapVersion: true`\n\n`webpack.config.js`\n\n```js\n{\n  \"module\": {\n    \"rules\": [\n      {\n        test: /\\/manifest\\.json$/,\n        use: [\n          {\n            loader: 'file-loader',\n            options: {\n              name: '[name].[ext]'\n            }\n          },\n          'extract-loader',\n          {\n            loader: 'chrome-manifest-loader',\n            options: {\n              mapVersion: true\n            }\n          }\n        ],\n        // needed for webpack 4 to override default json loader\n        type: 'javascript/auto'\n      }\n    ]\n  }\n}\n```\n\n`package.json`\n\n```json\n{\n  \"version\": \"1.0.1\"\n}\n```\n\n`manifest.json`\n\n```json\n{}\n```\n\n**output** (`manifest.json`)\n\n```json\n{\n  \"version\": \"1.0.1\"\n}\n```\n\n### Map browserslist config to minimum_chrome_version\n\nOption: `mapMinimumChromeVersion: true`\n\n`webpack.config.js`\n\n```js\n{\n  \"module\": {\n    \"rules\": [\n      {\n        test: /\\/manifest\\.json$/,\n        use: [\n          {\n            loader: 'file-loader',\n            options: {\n              name: '[name].[ext]'\n            }\n          },\n          'extract-loader',\n          {\n            loader: 'chrome-manifest-loader',\n            options: {\n              mapMinimumChromeVersion: true\n            }\n          }\n        ],\n        // needed for webpack 4 to override default json loader\n        type: 'javascript/auto'\n      }\n    ]\n  }\n}\n```\n\n`.browserslistrc`\n\n```json\nchrome \u003e= 51\n```\n\n`manifest.json`\n\n```json\n{}\n```\n\n**output** (`manifest.json`)\n\n```json\n{\n  \"minimum_chrome_version\": \"51\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforay1010%2Fchrome-manifest-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforay1010%2Fchrome-manifest-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforay1010%2Fchrome-manifest-loader/lists"}