Skip to content

Commit 3f9f90f

Browse files
committed
fix: 修复 extract-text-webpack-plugin order error
1 parent 4a33da2 commit 3f9f90f

File tree

6 files changed

+51
-19
lines changed

6 files changed

+51
-19
lines changed

lib/models/Config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var _createClass3 = _interopRequireDefault(_createClass2);
1919
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2020

2121
var path = require('path');
22-
var ExtractTextPlugin = require('extract-text-webpack-plugin');
22+
var ExtractTextPlugin = require('extract-text-webpack-plugin-ignore-order');
2323
var CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
2424

2525
var normalize = require('../utils/path').normalize;

lib/models/Project.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ var fs = require('fs');
3939

4040
var Config = require('./Config.js');
4141
var Manager = require('../modules/manager.js');
42-
var ExtractTextPlugin = require('extract-text-webpack-plugin');
42+
var ExtractTextPlugin = require('extract-text-webpack-plugin-ignore-order');
43+
var originExtractTextPlugin = require('extract-text-webpack-plugin');
4344

4445
var UtilFs = require('../utils/fs.js');
4546
var UtilPath = require('../utils/path.js');
@@ -280,11 +281,11 @@ var Project = function () {
280281
/**
281282
* 处理config.commonsChunk配置项,基于CommonsChunkPlugin插件封装
282283
* commonsChunk: {
283-
name: 'common',
284+
name: 'common',
284285
minChunks: 2, //公共模块被使用的最小次数。比如配置为3,也就是同一个模块只有被3个以外的页面同时引用时才会被提取出来作为common chunks,默认为2
285-
vendors: {
286-
lib: ['jquery', 'underscore', 'moment'],
287-
charts: ['highcharts', 'echarts']
286+
vendors: {
287+
lib: ['jquery', 'underscore', 'moment'],
288+
charts: ['highcharts', 'echarts']
288289
}
289290
}
290291
* @param {*} config
@@ -404,9 +405,9 @@ var Project = function () {
404405
}
405406
}
406407

407-
// 如果没有 ExtractTextPlugin 则添加进 Plugins
408+
// 如果没有 ExtractTextPlugin 则为项目添加一个
408409
var isExtractTextPluginExists = config.plugins.some(function (plugin) {
409-
return plugin instanceof ExtractTextPlugin;
410+
return plugin instanceof originExtractTextPlugin;
410411
});
411412
if (!isExtractTextPluginExists) {
412413
config.plugins.push(new ExtractTextPlugin(config.output.filename.replace('[ext]', '.css')));

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"eslint": "2.13.1",
3131
"extend": "^3.0.0",
3232
"extract-text-webpack-plugin": "^1.0.1",
33+
"extract-text-webpack-plugin-ignore-order": "^1.1.1",
3334
"fs-extra": "^1.0.0",
3435
"globby": "^5.0.0",
3536
"html-loader": "^0.4.3",

src/models/Config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22
const path = require('path');
3-
const ExtractTextPlugin = require('extract-text-webpack-plugin');
3+
const ExtractTextPlugin = require('extract-text-webpack-plugin-ignore-order');
44
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
55

66
const normalize = require('../utils/path').normalize;

src/models/Project.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ const fs = require('fs');
99

1010
const Config = require('./Config.js');
1111
const Manager = require('../modules/manager.js');
12-
const ExtractTextPlugin = require('extract-text-webpack-plugin');
12+
const ExtractTextPlugin = require('extract-text-webpack-plugin-ignore-order');
13+
const originExtractTextPlugin = require('extract-text-webpack-plugin');
1314

1415
const UtilFs = require('../utils/fs.js');
1516
const UtilPath = require('../utils/path.js');
@@ -219,7 +220,7 @@ class Project {
219220
: ykitConfigFile.config || {};
220221

221222
extend(true, this.config, ykitJSConfig);
222-
223+
223224
handleExportsConfig.bind(this)(ykitJSConfig);
224225
handleCommonsChunk.bind(this)(this.config);
225226

@@ -250,11 +251,11 @@ class Project {
250251
/**
251252
* 处理config.commonsChunk配置项,基于CommonsChunkPlugin插件封装
252253
* commonsChunk: {
253-
name: 'common',
254+
name: 'common',
254255
minChunks: 2, //公共模块被使用的最小次数。比如配置为3,也就是同一个模块只有被3个以外的页面同时引用时才会被提取出来作为common chunks,默认为2
255-
vendors: {
256-
lib: ['jquery', 'underscore', 'moment'],
257-
charts: ['highcharts', 'echarts']
256+
vendors: {
257+
lib: ['jquery', 'underscore', 'moment'],
258+
charts: ['highcharts', 'echarts']
258259
}
259260
}
260261
* @param {*} config
@@ -286,7 +287,7 @@ class Project {
286287
}
287288

288289
}
289-
290+
290291

291292
if (chunks.length > 0) {
292293
let chunkFilename = filenameTpl.filename;
@@ -302,7 +303,7 @@ class Project {
302303
}
303304
}
304305
}
305-
306+
306307
// 处理 exports.config 中 export 和旧接口
307308

308309
function handleExportsConfig(exportsConfig, options) {
@@ -386,9 +387,9 @@ class Project {
386387
}
387388
}
388389

389-
// 如果没有 ExtractTextPlugin 则添加进 Plugins
390+
// 如果没有 ExtractTextPlugin 则为项目添加一个
390391
const isExtractTextPluginExists = config.plugins.some((plugin) => {
391-
return plugin instanceof ExtractTextPlugin;
392+
return plugin instanceof originExtractTextPlugin;
392393
});
393394
if(!isExtractTextPluginExists) {
394395
config.plugins.push(new ExtractTextPlugin(config.output.filename.replace('[ext]', '.css')));

yarn.lock

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1999,6 +1999,15 @@ extglob@^0.3.1:
19991999
dependencies:
20002000
is-extglob "^1.0.0"
20012001

2002+
extract-text-webpack-plugin-ignore-order@^1.1.1:
2003+
version "1.1.1"
2004+
resolved "https://repo.corp.qunar.com/artifactory/api/npm/npm-qunar/extract-text-webpack-plugin-ignore-order/-/extract-text-webpack-plugin-ignore-order-1.1.1.tgz#32afcacb95608f0abc35e175530c5bde71e2f59f"
2005+
dependencies:
2006+
async "^1.5.0"
2007+
loader-utils "^0.2.3"
2008+
webpack "^1.12.2"
2009+
webpack-sources "^0.1.0"
2010+
20022011
extract-text-webpack-plugin@^1.0.1:
20032012
version "1.0.1"
20042013
resolved "http://registry.npm.corp.qunar.com/extract-text-webpack-plugin/download/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c"
@@ -5636,6 +5645,26 @@ webpack@1.14.0:
56365645
watchpack "^0.2.1"
56375646
webpack-core "~0.6.9"
56385647

5648+
webpack@^1.12.2:
5649+
version "1.15.0"
5650+
resolved "https://repo.corp.qunar.com/artifactory/api/npm/npm-qunar/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98"
5651+
dependencies:
5652+
acorn "^3.0.0"
5653+
async "^1.3.0"
5654+
clone "^1.0.2"
5655+
enhanced-resolve "~0.9.0"
5656+
interpret "^0.6.4"
5657+
loader-utils "^0.2.11"
5658+
memory-fs "~0.3.0"
5659+
mkdirp "~0.5.0"
5660+
node-libs-browser "^0.7.0"
5661+
optimist "~0.6.0"
5662+
supports-color "^3.1.0"
5663+
tapable "~0.1.8"
5664+
uglify-js "~2.7.3"
5665+
watchpack "^0.2.1"
5666+
webpack-core "~0.6.9"
5667+
56395668
whet.extend@~0.9.9:
56405669
version "0.9.9"
56415670
resolved "http://registry.npm.corp.qunar.com/whet.extend/download/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"

0 commit comments

Comments
 (0)