Angular ERROR: PostCSS received undefined instead of CSS string

Angular ERROR: PostCSS received undefined instead of CSS string

正在尝试构建 Angular 项目,但出现以下错误。这个项目上周建得很好。我对使用此项目中的 Dll 的其他项目进行了一些更改,但未对此项目进行任何更改。我已经花了很多时间对其进行故障排除,但没有成功,感谢您的帮助。

ERROR: PostCSS received undefined instead of CSS string An unhandled exception occurred: PostCSS received undefined instead of CSS string

我有类似的问题。我正在尝试构建一个 angular 库,但出现了以下消息:

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

我正在使用 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 版本); Node.js v12.18.2; Ubuntu x64 18.0.4 LTS 和 Angular CLI 9.1.9.

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

如果 node-sass 是针对与当前 运行 不同版本的 Node.js 编译的(即如果您最近更改了 Node.js 版本)。您可以使用以下方法解决该问题:

npm rebuild node-sass

我在尝试测试 Angular 库时遇到了同样的问题,问题是我在 styles [=22] 中使用 [``] 而不是 [] =] 我的组件元数据。

错误

@Component({
selector: 'my-input',
template: `
  <input
  ... />
  `,
styles: [``],

正确

@Component({
selector: 'my-input',
template: `
  <input
  ... />
  `,
styles: [],

这可能是由于节点版本发生变化所致。我对 NUXT 应用程序有同样的问题。我所做的是

  1. 使用纱线,在项目的根目录中,运行 yarn。但是如果你使用 npm 运行 npm install
  2. 再次开始您的项目。