何種問題?
在next.js項目導(dǎo)入antd的less樣式時,出現(xiàn)如下問題:
Failed to compile
./node_modules/antd/dist/antd.lessModule build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):ModuleBuildError: Module build failed (from ./node_modules/less-loader/dist/cjs.js):// https://github.com/ant-design/ant-motion/issues/44.bezierEasingMixin();^Inline JavaScript is not enabled. Is it set in your options? in D:\project\pb\node_modules\antd\lib\style\color\bezierEasing.less (line 110, column 0) at <anonymous>
這個在7927# issue中有解答丽旅。原因是less3.0之后染服,默認不開啟內(nèi)聯(lián)JavaScript,需要傳入{ javascriptEnabled:true }手動開啟奔坟。參閱:
https://github.com/ant-design/ant-design/issues/7927#
在哪傳入携栋?
相信很多人很大概率卡在這個問題上,答:
因為用cli工具搭建的項目咳秉,webpack配置都內(nèi)建在cli中而非暴露在項目里婉支,在next.config.js中追蹤withLess方法,可以看到配置:
解決方法:
將 { javascriptEnabled : true }傳入lessLoaderOptions即可覆蓋默認webpack配置:
const withLess = require('@zeit/next-less')
module.exports = withLess({
lessLoaderOptions : {
javascriptEnabled : true
}
})