Angular - 错误:PostCSS 收到未定义而不是 CSS 字符串

Soh*_*ohi 11 build angular

试图构建一个 Angular 项目,但我遇到了以下错误。这个项目上周建得很好。我对使用该项目中的 Dll 的其他项目进行了一些更改,但对该项目没有任何更改。我已经花了很多时间对它进行故障排除,但没有运气,并感谢任何帮助。

错误:PostCSS 接收未定义而不是 CSS 字符串发生未处理的异常:PostCSS 接收未定义而不是 CSS 字符串

小智 42

如果您正在使用 webpack,并尝试使用sass-loader,还要添加sass

  • 奇怪的是,我需要在添加 sass-loader (使用纱线和 Vue 2.x)后添加 sass,但这为我解决了这个问题。 (6认同)
  • 有时我想如果没有开发者社区怎么办?我们可怜的开发人员怎么会知道我们也必须手动添加 sass :'D (3认同)
  • 我必须使用的实际命令是:`npm install sass-loader sass webpack --save-dev` 取自[https://webpack.js.org/loaders/sass-loader/](https://webpack.js. js.org/loaders/sass-loader/) (3认同)

Ale*_*lec 30

如果node-sass为与您当前运行的 Node.js 版本不同的 Node.js 版本编译(即,如果您最近更改了 Node.js 版本),有时会发生这种情况。您可以使用以下方法解决此问题:

npm rebuild node-sass
Run Code Online (Sandbox Code Playgroud)

  • 起初不起作用,在运行“npmrebuildnode-sass”之后必须运行“npminstall”,然后它才对我有用 (4认同)

小智 21

在尝试测试 Angular 库时,我遇到了同样的问题,问题出[``][]styles的组件元数据的属性中。

错误的

@Component({
selector: 'my-input',
template: `
  <input
  ... />
  `,
styles: [``],
Run Code Online (Sandbox Code Playgroud)

正确的

@Component({
selector: 'my-input',
template: `
  <input
  ... />
  `,
styles: [],
Run Code Online (Sandbox Code Playgroud)

  • 我从 Angular 12.0.x 升级到 12.4.x 时遇到了同样的问题。解决方案是删除`styles: [``]` (4认同)

小智 7

我有类似的问题。我试图构建一个角度库,并出现以下消息:

Building Angular Package

------------------------------------------------------------------------------
Building entry point 'library-name'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
ERROR: PostCSS received undefined instead of CSS string
An unhandled exception occurred: PostCSS received undefined instead of CSS string
See "/tmp/ng-itlEgm/angular-errors.log" for further details.
[12:03:38] 'compile' errored after 17 s
[12:03:38] Error: Command `ng build library-name --prod` exited with code 127
    at ChildProcess.handleSubShellExit (/node_modules/gulp-run/command.js:166:13)
    at Object.onceWrapper (events.js:422:26)
    at ChildProcess.emit (events.js:315:20)
    at ChildProcess.EventEmitter.emit (domain.js:505:15)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
[12:03:38] 'build' errored after 17 s
Run Code Online (Sandbox Code Playgroud)

我用来gulp-run执行命令ng build library-name --prod。但是,直接在终端上执行命令ng build library-name --prod,日志错误较小,但也相似。

问题出在一个组件上。该组件有一个 styleURL(Angular 组件装饰器),如下所示:

...component.css

但是,图书馆使用scss. 所以,我将路径更改为:

...component.scss

我执行了命令“ng build library-name --prod”。于是,错误就没有再出现。

我使用的是 NVM v0.35.2(允许在我的机器上安装多个 NodeJS 版本);NodeJS v12.18.2;Ubuntu x64 18.0.4 LTS 和 Angular CLI 9.1.9。