Socket
Socket
Sign inDemoInstall

terser-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

terser-webpack-plugin - npm Package Compare versions

Comparing version 3.0.7 to 3.0.8

7

CHANGELOG.md

@@ -5,2 +5,9 @@ # Changelog

### [3.0.8](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v3.0.7...v3.0.8) (2020-07-27)
### Bug Fixes
* compatibility with child compilations ([9da4add](https://github.com/webpack-contrib/terser-webpack-plugin/commit/9da4add75390a583366b7f030d366c437a52137b))
### [3.0.7](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v3.0.6...v3.0.7) (2020-07-16)

@@ -7,0 +14,0 @@

51

dist/index.js

@@ -151,7 +151,2 @@ "use strict";

static hasAsset(commentFilename, compilation) {
const assetFilenames = Object.keys(compilation.assets).map(assetFilename => TerserPlugin.removeQueryString(assetFilename));
return assetFilenames.includes(TerserPlugin.removeQueryString(commentFilename));
}
static isWebpack4() {

@@ -221,7 +216,2 @@ return _webpack.version[0] === '4';

commentsFilename = compilation.getPath(commentsFilename, data);
if (TerserPlugin.hasAsset(commentsFilename, compilation)) {
compilation.errors.push(new Error(`The comment file "${TerserPlugin.removeQueryString(commentsFilename)}" conflicts with an existing asset, this may lead to code corruption, please use a different name`));
yield false;
}
}

@@ -255,3 +245,3 @@

const hasExtractedComments = commentsFilename && extractedComments && extractedComments.length > 0;
const hasBannerForExtractedComments = hasExtractedComments && this.options.extractComments.banner !== false;
const hasBannerForExtractedComments = this.options.extractComments.banner !== false;
let outputSource;

@@ -274,12 +264,6 @@ let shebang;

if (hasExtractedComments) {
if (!allExtractedComments[commentsFilename]) {
// eslint-disable-next-line no-param-reassign
allExtractedComments[commentsFilename] = [];
} // eslint-disable-next-line no-param-reassign
let banner; // Add a banner to the original file
allExtractedComments[commentsFilename] = allExtractedComments[commentsFilename].concat(extractedComments); // Add a banner to the original file
if (hasBannerForExtractedComments) {
let banner = this.options.extractComments.banner || `For license information please see ${_path.default.relative(_path.default.dirname(file), commentsFilename).replace(/\\/g, '/')}`;
banner = this.options.extractComments.banner || `For license information please see ${_path.default.relative(_path.default.dirname(file), commentsFilename).replace(/\\/g, '/')}`;

@@ -294,2 +278,27 @@ if (typeof banner === 'function') {

}
if (!allExtractedComments[commentsFilename]) {
// eslint-disable-next-line no-param-reassign
allExtractedComments[commentsFilename] = new Set();
}
extractedComments.forEach(comment => {
// Avoid re-adding banner
// Developers can use different banner for different names, but this setting should be avoided, it is not safe
if (banner && comment === `/*! ${banner} */`) {
return;
}
allExtractedComments[commentsFilename].add(comment);
}); // Extracted comments from child compilation
const previousExtractedComments = compilation.assets[commentsFilename];
if (previousExtractedComments) {
const previousExtractedCommentsSource = previousExtractedComments.source(); // Restore original comments and re-add them
previousExtractedCommentsSource.replace(/\n$/, '').split('\n\n').forEach(comment => {
allExtractedComments[commentsFilename].add(comment);
});
}
} // Updating assets

@@ -493,5 +502,5 @@ // eslint-disable-next-line no-param-reassign

Object.keys(allExtractedComments).forEach(commentsFilename => {
const extractedComments = new Set([...allExtractedComments[commentsFilename].sort()]); // eslint-disable-next-line no-param-reassign
const extractedComments = Array.from(allExtractedComments[commentsFilename]).sort().join('\n\n'); // eslint-disable-next-line no-param-reassign
compilation.assets[commentsFilename] = new _webpackSources.RawSource(`${Array.from(extractedComments).join('\n\n')}\n`);
compilation.assets[commentsFilename] = new _webpackSources.RawSource(`${extractedComments}\n`);
});

@@ -498,0 +507,0 @@ return Promise.resolve();

{
"name": "terser-webpack-plugin",
"version": "3.0.7",
"version": "3.0.8",
"description": "Terser plugin for webpack",

@@ -67,3 +67,3 @@ "license": "MIT",

"del-cli": "^3.0.1",
"eslint": "^7.4.0",
"eslint": "^7.5.0",
"eslint-config-prettier": "^6.11.0",

@@ -80,3 +80,4 @@ "eslint-plugin-import": "^2.21.2",

"uglify-js": "^3.10.0",
"webpack": "^4.43.0"
"webpack": "^4.44.0",
"worker-loader": "^2.0.0"
},

@@ -83,0 +84,0 @@ "keywords": [

@@ -520,2 +520,4 @@ <div align="center">

> ⚠️ We highly recommend using the `txt` extension. Using `js`/`cjs`/`mjs` extensions may conflict with existing assets which leads to broken code.
**webpack.config.js**

@@ -522,0 +524,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc