Skip to content

Commit 2d30397

Browse files
committed
feat(all): use config-css as base
1 parent a911f3c commit 2d30397

File tree

2 files changed

+7
-44
lines changed

2 files changed

+7
-44
lines changed

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,8 @@
3838
"typings": "^1.3.1"
3939
},
4040
"dependencies": {
41-
"css-loader": "^0.23.1",
42-
"extract-text-webpack-plugin": "^2.0.0-beta",
43-
"less-loader": "^2.2.3",
44-
"style-loader": "^0.13.1"
41+
"@easy-webpack/config-css": "^2.2.1",
42+
"less-loader": "^2.2.3"
4543
},
4644
"peerDependencies": {
4745
"@easy-webpack/core": "*"

src/index.ts

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {WebpackConfig, get} from '@easy-webpack/core'
2+
import * as easyCss from '@easy-webpack/config-css'
23
const ExtractTextPlugin = require('extract-text-webpack-plugin')
34

45
/**
@@ -9,43 +10,7 @@ const ExtractTextPlugin = require('extract-text-webpack-plugin')
910
* extractText: do you want to extract all css to a separate file? boolean, configuration object or instance of ExtractTextPlugin, defaults to true
1011
* resolveRelativeUrl: boolean or object with parameters
1112
*/
12-
export = function less({ filename = '[name].css', allChunks = false, sourceMap = false, extractText = undefined, resolveRelativeUrl = undefined } = {}) {
13-
return function less(this: WebpackConfig): WebpackConfig {
14-
const loaders = ['style', `css${sourceMap ? '?sourceMap' : ''}`]
15-
16-
if (resolveRelativeUrl) {
17-
loaders.push(`resolve-url${sourceMap ? '?sourceMap' : ''}`)
18-
sourceMap = true // source maps need to be on for this
19-
}
20-
21-
loaders.push(`less${sourceMap ? '?sourceMap' : ''}`)
22-
23-
const extractCss = extractText !== false
24-
const providedInstance = extractText instanceof ExtractTextPlugin
25-
if (!providedInstance)
26-
extractText = extractCss ? new ExtractTextPlugin(filename, extractText instanceof Object ? extractText : { allChunks, sourceMap }) : null
27-
const config = {
28-
module: {
29-
loaders: get(this, 'module.loaders', []).concat([{
30-
test: /\.less$/i,
31-
loaders: extractCss ? extractText.extract(...loaders.slice(1)) : loaders
32-
}])
33-
}
34-
} as WebpackConfig
35-
if (extractText && !providedInstance) {
36-
config.plugins = [
37-
/**
38-
* Plugin: ExtractTextPlugin
39-
* It moves every import "style.css" in entry chunks into a single concatenated css output file.
40-
* So your styles are no longer inlined into the javascript, but separate in a css bundle file (styles.css).
41-
* If your total stylesheet volume is big, it will be faster because the stylesheet bundle is loaded in parallel to the javascript bundle.
42-
*/
43-
extractText
44-
].concat(get(this, 'plugins', []))
45-
}
46-
if (resolveRelativeUrl instanceof Object) {
47-
config['resolveUrlLoader'] = resolveRelativeUrl
48-
}
49-
return config
50-
}
51-
}
13+
export = function less({ filename = '[name].css', allChunks = false, sourceMap = false, extractText = undefined, resolveRelativeUrl = undefined, additionalLoaders = [] } = {}) {
14+
additionalLoaders.push(`less${sourceMap ? '?sourceMap' : ''}`)
15+
return easyCss({ test: /\.less$/i, filename, allChunks, extractText, resolveRelativeUrl, sourceMap, additionalLoaders })
16+
}

0 commit comments

Comments
 (0)