提交 be86ab00 编写于 作者: M Mathieu Triay 提交者: Joe Haddad

Update webpack config to also take next-stylus into account (#9277)

上级 f3bda83e
...@@ -995,7 +995,7 @@ export default async function getBaseWebpackConfig( ...@@ -995,7 +995,7 @@ export default async function getBaseWebpackConfig(
} }
} }
// Patch `@zeit/next-sass` and `@zeit/next-less` compatibility // Patch `@zeit/next-sass`, `@zeit/next-less`, `@zeit/next-stylus` for compatibility
if (webpackConfig.module && Array.isArray(webpackConfig.module.rules)) { if (webpackConfig.module && Array.isArray(webpackConfig.module.rules)) {
;[].forEach.call(webpackConfig.module.rules, function( ;[].forEach.call(webpackConfig.module.rules, function(
rule: webpack.RuleSetRule rule: webpack.RuleSetRule
...@@ -1008,9 +1008,10 @@ export default async function getBaseWebpackConfig( ...@@ -1008,9 +1008,10 @@ export default async function getBaseWebpackConfig(
rule.test.source === '\\.scss$' || rule.test.source === '\\.sass$' rule.test.source === '\\.scss$' || rule.test.source === '\\.sass$'
const isLess = rule.test.source === '\\.less$' const isLess = rule.test.source === '\\.less$'
const isCss = rule.test.source === '\\.css$' const isCss = rule.test.source === '\\.css$'
const isStylus = rule.test.source === '\\.styl$'
// Check if the rule we're iterating over applies to Sass, Less, or CSS // Check if the rule we're iterating over applies to Sass, Less, or CSS
if (!(isSass || isLess || isCss)) { if (!(isSass || isLess || isCss || isStylus)) {
return return
} }
...@@ -1026,8 +1027,8 @@ export default async function getBaseWebpackConfig( ...@@ -1026,8 +1027,8 @@ export default async function getBaseWebpackConfig(
typeof use.options === 'object' && typeof use.options === 'object' &&
// The `minimize` property is a good heuristic that we need to // The `minimize` property is a good heuristic that we need to
// perform this hack. The `minimize` property was only valid on // perform this hack. The `minimize` property was only valid on
// old `css-loader` versions. Custom setups (that aren't next-sass // old `css-loader` versions. Custom setups (that aren't next-sass,
// or next-less) likely have the newer version. // next-less or next-stylus) likely have the newer version.
// We still handle this gracefully below. // We still handle this gracefully below.
(Object.prototype.hasOwnProperty.call(use.options, 'minimize') || (Object.prototype.hasOwnProperty.call(use.options, 'minimize') ||
Object.prototype.hasOwnProperty.call( Object.prototype.hasOwnProperty.call(
...@@ -1041,12 +1042,12 @@ export default async function getBaseWebpackConfig( ...@@ -1041,12 +1042,12 @@ export default async function getBaseWebpackConfig(
// Try to monkey patch within a try-catch. We shouldn't fail the build // Try to monkey patch within a try-catch. We shouldn't fail the build
// if we cannot pull this off. // if we cannot pull this off.
// The user may not even be using the `next-sass` or `next-less` // The user may not even be using the `next-sass` or `next-less` or
// plugins. // `next-stylus` plugins.
// If it does work, great! // If it does work, great!
try { try {
// Resolve the version of `@zeit/next-css` as depended on by the Sass // Resolve the version of `@zeit/next-css` as depended on by the Sass,
// or Less plugin. // Less or Stylus plugin.
const correctNextCss = resolveRequest( const correctNextCss = resolveRequest(
'@zeit/next-css', '@zeit/next-css',
isCss isCss
...@@ -1058,6 +1059,8 @@ export default async function getBaseWebpackConfig( ...@@ -1058,6 +1059,8 @@ export default async function getBaseWebpackConfig(
? '@zeit/next-sass' ? '@zeit/next-sass'
: isLess : isLess
? '@zeit/next-less' ? '@zeit/next-less'
: isStylus
? '@zeit/next-stylus'
: 'next' : 'next'
) )
) )
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册