Skip to content

Commit

Permalink
fix: yarn pnp compatibility (#688)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait authored Jan 28, 2021
1 parent 70ce174 commit 05b188a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 75 deletions.
14 changes: 14 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@ const REGEXP_CONTENTHASH = /\[contenthash(?::(\d+))?\]/i;
const REGEXP_NAME = /\[name\]/i;
const DEFAULT_FILENAME = '[name].css';

if (webpack.util.serialization && webpack.util.serialization.registerLoader) {
const pathLength = `${pluginName}/dist`.length;

webpack.util.serialization.registerLoader(
/^mini-css-extract-plugin\//,
(request) => {
// eslint-disable-next-line global-require, import/no-dynamic-require
require(`.${request.slice(pathLength)}`);

return true;
}
);
}

class MiniCssExtractPlugin {
constructor(options = {}) {
validate(schema, options, {
Expand Down
75 changes: 0 additions & 75 deletions test/TestCache.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,6 @@ describe('TestCache', () => {

it('should work without cache', async () => {
if (webpack.version[0] !== '4') {
const originalRegister = webpack.util.serialization.register;

webpack.util.serialization.register = jest
.fn()
.mockImplementation((...args) => {
if (args[1].startsWith('mini-css-extract-plugin')) {
// eslint-disable-next-line no-param-reassign
args[1] = args[1].replace(/dist/, 'src');

return originalRegister(...args);
}

return originalRegister(...args);
});

const casesDirectory = path.resolve(__dirname, 'cases');
const directoryForCase = path.resolve(casesDirectory, 'asset-modules');
// eslint-disable-next-line import/no-dynamic-require, global-require
Expand Down Expand Up @@ -136,21 +121,6 @@ describe('TestCache', () => {

it('should work with the "memory" cache', async () => {
if (webpack.version[0] !== '4') {
const originalRegister = webpack.util.serialization.register;

webpack.util.serialization.register = jest
.fn()
.mockImplementation((...args) => {
if (args[1].startsWith('mini-css-extract-plugin')) {
// eslint-disable-next-line no-param-reassign
args[1] = args[1].replace(/dist/, 'src');

return originalRegister(...args);
}

return originalRegister(...args);
});

const casesDirectory = path.resolve(__dirname, 'cases');
const directoryForCase = path.resolve(casesDirectory, 'asset-modules');
// eslint-disable-next-line import/no-dynamic-require, global-require
Expand Down Expand Up @@ -262,21 +232,6 @@ describe('TestCache', () => {

it('should work with the "filesystem" cache', async () => {
if (webpack.version[0] !== '4') {
const originalRegister = webpack.util.serialization.register;

webpack.util.serialization.register = jest
.fn()
.mockImplementation((...args) => {
if (args[1].startsWith('mini-css-extract-plugin')) {
// eslint-disable-next-line no-param-reassign
args[1] = args[1].replace(/dist/, 'src');

return originalRegister(...args);
}

return originalRegister(...args);
});

const casesDirectory = path.resolve(__dirname, 'cases');
const directoryForCase = path.resolve(casesDirectory, 'simple');
// eslint-disable-next-line import/no-dynamic-require, global-require
Expand Down Expand Up @@ -392,21 +347,6 @@ describe('TestCache', () => {

it('should work with the "filesystem" cache and asset modules', async () => {
if (webpack.version[0] !== '4') {
const originalRegister = webpack.util.serialization.register;

webpack.util.serialization.register = jest
.fn()
.mockImplementation((...args) => {
if (args[1].startsWith('mini-css-extract-plugin')) {
// eslint-disable-next-line no-param-reassign
args[1] = args[1].replace(/dist/, 'src');

return originalRegister(...args);
}

return originalRegister(...args);
});

const casesDirectory = path.resolve(__dirname, 'cases');
const directoryForCase = path.resolve(casesDirectory, 'asset-modules');
// eslint-disable-next-line import/no-dynamic-require, global-require
Expand Down Expand Up @@ -528,21 +468,6 @@ describe('TestCache', () => {

it('should work with the "filesystem" cache and file-loader', async () => {
if (webpack.version[0] !== '4') {
const originalRegister = webpack.util.serialization.register;

webpack.util.serialization.register = jest
.fn()
.mockImplementation((...args) => {
if (args[1].startsWith('mini-css-extract-plugin')) {
// eslint-disable-next-line no-param-reassign
args[1] = args[1].replace(/dist/, 'src');

return originalRegister(...args);
}

return originalRegister(...args);
});

const casesDirectory = path.resolve(__dirname, 'cases');
const directoryForCase = path.resolve(casesDirectory, 'file-loader');
// eslint-disable-next-line import/no-dynamic-require, global-require
Expand Down

0 comments on commit 05b188a

Please sign in to comment.