mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 04:10:04 +02:00
add some packages
This commit is contained in:
91
node_modules/babel-plugin-minify-replace/README.md
generated
vendored
Normal file
91
node_modules/babel-plugin-minify-replace/README.md
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
# babel-plugin-minify-replace
|
||||
|
||||
Configurable "search and replace" plugin. Replaces matching nodes in the tree with a given replacement node. For example you can replace `process.NODE_ENV` with `"production"`.
|
||||
|
||||
## Example
|
||||
|
||||
**Options**
|
||||
|
||||
```javascript
|
||||
[
|
||||
{
|
||||
identifierName: "__DEV__",
|
||||
replacement: {
|
||||
type: "numericLiteral",
|
||||
value: 0,
|
||||
},
|
||||
},
|
||||
]
|
||||
```
|
||||
|
||||
**In**
|
||||
|
||||
```javascript
|
||||
if (!__DEV__) {
|
||||
foo();
|
||||
}
|
||||
if (a.__DEV__) {
|
||||
foo();
|
||||
}
|
||||
```
|
||||
|
||||
**Out**
|
||||
|
||||
```javascript
|
||||
if (!0) {
|
||||
foo();
|
||||
}
|
||||
if (a.__DEV__) {
|
||||
foo();
|
||||
}
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install babel-plugin-minify-replace
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Via `.babelrc` (Recommended)
|
||||
|
||||
**.babelrc**
|
||||
|
||||
```json
|
||||
// without options
|
||||
{
|
||||
"plugins": ["minify-replace"]
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
// with options
|
||||
{
|
||||
"plugins": [
|
||||
["minify-replace", {
|
||||
"replacements": [{
|
||||
"identifierName": "__DEV__",
|
||||
"replacement": {
|
||||
"type": "booleanLiteral",
|
||||
"value": true
|
||||
}
|
||||
}]
|
||||
}]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Via CLI
|
||||
|
||||
```sh
|
||||
babel --plugins minify-replace script.js
|
||||
```
|
||||
|
||||
### Via Node API
|
||||
|
||||
```javascript
|
||||
require("@babel/core").transform("code", {
|
||||
plugins: ["minify-replace"]
|
||||
});
|
||||
```
|
100
node_modules/babel-plugin-minify-replace/lib/index.js
generated
vendored
Normal file
100
node_modules/babel-plugin-minify-replace/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = ({
|
||||
types: t
|
||||
}) => {
|
||||
const NO_MEMBER = Symbol("no member");
|
||||
const replaceVisitor = {
|
||||
ReferencedIdentifier(path) {
|
||||
const _path = path,
|
||||
node = _path.node;
|
||||
const optionsMap = this.replacements[node.name];
|
||||
|
||||
if (!optionsMap) {
|
||||
return;
|
||||
}
|
||||
|
||||
let options;
|
||||
|
||||
if (path.parentPath.isMemberExpression({
|
||||
object: node
|
||||
})) {
|
||||
const property = path.parent.property;
|
||||
const key = t.isIdentifier(property) && property.name;
|
||||
|
||||
if (typeof key === "string") {
|
||||
options = optionsMap[key];
|
||||
path = path.parentPath;
|
||||
}
|
||||
}
|
||||
|
||||
if (!options) {
|
||||
options = optionsMap[NO_MEMBER];
|
||||
}
|
||||
|
||||
if (!options) {
|
||||
return;
|
||||
}
|
||||
|
||||
path.replaceWith(options.node);
|
||||
}
|
||||
|
||||
};
|
||||
return {
|
||||
name: "minify-replace",
|
||||
visitor: {
|
||||
Program(path) {
|
||||
/**
|
||||
Replacements is an array of objects like this:
|
||||
{
|
||||
identifierName: 'console',
|
||||
member: 'log', // optional
|
||||
replacement: {
|
||||
type: 'identifier',
|
||||
value: '',
|
||||
},
|
||||
}
|
||||
**/
|
||||
if (!this.opts.replacements) {
|
||||
// No replacements. Bail.
|
||||
return;
|
||||
}
|
||||
|
||||
const map = Object.create(null);
|
||||
this.opts.replacements.forEach(({
|
||||
identifierName,
|
||||
replacement,
|
||||
member
|
||||
}) => {
|
||||
if (path.scope.globals[identifierName]) {
|
||||
// Convert to a node, we only allow identifiers and literals as replacements
|
||||
if (!replacement.type.match(/literal|identifier/i)) {
|
||||
throw new Error("Only literals and identifier are supported as replacements");
|
||||
}
|
||||
|
||||
const node = t[replacement.type](replacement.value);
|
||||
const options = {
|
||||
identifierName,
|
||||
node,
|
||||
member
|
||||
};
|
||||
|
||||
if (!map[identifierName]) {
|
||||
map[identifierName] = {};
|
||||
}
|
||||
|
||||
if (member && map[identifierName][member]) {
|
||||
throw new Error(`Replacement collision ${identifierName}.${member}`);
|
||||
}
|
||||
|
||||
map[identifierName][member || NO_MEMBER] = options;
|
||||
}
|
||||
});
|
||||
path.traverse(replaceVisitor, {
|
||||
replacements: map
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
};
|
46
node_modules/babel-plugin-minify-replace/package.json
generated
vendored
Normal file
46
node_modules/babel-plugin-minify-replace/package.json
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"_from": "babel-plugin-minify-replace@^0.4.1",
|
||||
"_id": "babel-plugin-minify-replace@0.4.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-xRnYhYxiKySWo2SmE1rSd1V42UM=",
|
||||
"_location": "/babel-plugin-minify-replace",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "babel-plugin-minify-replace@^0.4.1",
|
||||
"name": "babel-plugin-minify-replace",
|
||||
"escapedName": "babel-plugin-minify-replace",
|
||||
"rawSpec": "^0.4.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^0.4.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/babel-preset-minify"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.4.1.tgz",
|
||||
"_shasum": "c519d8858c622b2496a364a6135ad2775578d943",
|
||||
"_spec": "babel-plugin-minify-replace@^0.4.1",
|
||||
"_where": "/home/s2/Documents/Code/minifyfromhtml/node_modules/babel-preset-minify",
|
||||
"author": {
|
||||
"name": "amasad"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/babel/minify/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "Configurable \"search and replace\" plugin. Replaces matching nodes in the tree with a given replacement node. For example you can replace `process.NODE_ENV` with `\"production\"`.",
|
||||
"homepage": "https://github.com/babel/minify#readme",
|
||||
"keywords": [
|
||||
"babel-plugin"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "lib/index.js",
|
||||
"name": "babel-plugin-minify-replace",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/minify/tree/master/packages/babel-plugin-minify-replace"
|
||||
},
|
||||
"version": "0.4.1"
|
||||
}
|
Reference in New Issue
Block a user