Nuxt 2.17.3构建PostCSS报错:original.line/column非数值
Nuxt 2.17.3 PostCSS 构建致命错误排查与解决
问题场景
团队开发Nuxt 2.17.3项目时触发PostCSS致命错误,执行以下操作后复现问题:
- 删除
node_modules - 删除yarn锁文件
- 清理yarn缓存
- 执行
yarn命令
核心错误提示
Error: original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.
完整报错信息
ERROR in ./assets/scss/master.scss (./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/nuxt/node_modules/postcss-loader/dist/cjs.js??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!./assets/scss/master.scss) Module build failed (from ./node_modules/nuxt/node_modules/postcss-loader/dist/cjs.js): Error: original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values. at SourceMapGenerator.SourceMapGenerator_validateMapping [as _validateMapping] (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/source-map-js/lib/source-map-generator.js:276:15) at SourceMapGenerator.SourceMapGenerator_addMapping [as addMapping] (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/source-map-js/lib/source-map-generator.js:110:12) at /Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/source-map-js/lib/source-map-generator.js:72:17 at BasicSourceMapConsumer.SourceMapConsumer_eachMapping [as eachMapping] (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/source-map-js/lib/source-map-consumer.js:155:7) at Function.SourceMapGenerator_fromSourceMap [as fromSourceMap] (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/source-map-js/lib/source-map-generator.js:48:24) at MapGenerator.generateMap (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss/lib/map-generator.js:101:37) at MapGenerator.generate (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss/lib/map-generator.js:85:19) at new NoWorkResult (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss/lib/no-work-result.js:33:46) at Processor.process (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss/lib/processor.js:51:14) at runPostcss (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/postcss-import/lib/process-content.js:48:6) at processContent (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/postcss-import/lib/process-content.js:42:10) at /Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/postcss-import/index.js:382:20 at async Promise.all (index 0) at async LazyResult.runAsync (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss/lib/lazy-result.js:261:11) at async Object.loader (/Users/REDACTED/REDACTED/REDACTED/REDACTED/REDACTED/node_modules/nuxt/node_modules/postcss-loader/dist/index.js:95:14) @ ./assets/scss/master.scss 4:14-243 @ ./.nuxt/App.js @ ./.nuxt/index.js @ ./.nuxt/client.js @ multi ./node_modules/nuxt/node_modules/@nuxt/components/lib/installComponents.js ./.nuxt/client.js
问题根源与解决办法
这个错误是source-map-js包的版本兼容性问题导致的:最新的source-map-js@1.1.0对source map的校验逻辑更严格,而Nuxt 2.17.3依赖的PostCSS版本无法适配该校验规则。
优先解决步骤
锁定source-map-js版本
在项目的package.json中添加版本锁定配置:- 若使用yarn,添加
resolutions字段:{ "resolutions": { "source-map-js": "1.0.2" } } - 若使用npm,替换为
overrides字段:{ "overrides": { "source-map-js": "1.0.2" } }
- 若使用yarn,添加
重新安装依赖
- 删除依赖目录与锁文件:
rm -rf node_modules yarn.lock(npm用户替换为rm -rf node_modules package-lock.json) - 清理缓存:
yarn cache clean(npm用户执行npm cache clean --force) - 重新安装:
yarn或npm install
- 删除依赖目录与锁文件:
验证修复
运行yarn dev或npm run dev,确认构建错误消失。
备选排查方向(若上述方法无效)
- 降级
postcss-import版本到^14.1.0,新版本可能与旧PostCSS版本存在兼容性冲突 - 临时禁用source map:在
nuxt.config.js中设置build.sourceMap: false(仅临时应急,不推荐长期使用)
内容的提问来源于stack exchange,提问作者Melvin Idema
相关产品推荐
相关产品推荐

