使用Angular CLI在Angular 4上配置网页包

使用Angular CLI在Angular 4上配置网页包,angular,npm,build,webpack-2,Angular,Npm,Build,Webpack 2,在我的应用程序中,我希望使用SASS和一些使用NPM加载的前端库。要设置捆绑,我需要使用Webpack之类的工具 首先,我试图找到Angular CLI使用的Webpack配置文件。后来,我发现Angular CLI希望您不必进行配置。但我的问题是,在运行我的应用程序之前,我需要配置SASS传输等,手动运行一些命令确实不是一个好主意。我通常使用ngserve,顾名思义,它让我测试我的应用程序+监视更改并应用更改。我想做的是,运行一些脚本,在这个过程中检测到更改时执行这些脚本。我该如何处理这个问题

在我的应用程序中,我希望使用SASS和一些使用NPM加载的前端库。要设置捆绑,我需要使用Webpack之类的工具

首先,我试图找到Angular CLI使用的Webpack配置文件。后来,我发现Angular CLI希望您不必进行配置。但我的问题是,在运行我的应用程序之前,我需要配置SASS传输等,手动运行一些命令确实不是一个好主意。我通常使用
ngserve
,顾名思义,它让我测试我的应用程序+监视更改并应用更改。我想做的是,运行一些脚本,在这个过程中检测到更改时执行这些脚本。我该如何处理这个问题

更新:


编译SASS是我必须解决的事情之一,现在已经解决了。我还想运行Autoprefixer,并在构建中打包一些node_模块。最好的方法是什么?

Angular cli支持sass,而不是开箱即用。您可以使用
--style
配置或只需编辑
.angular cli.json

"defaults": {
    "styleExt": "scss",  // or sass; both are accepted
}
如果要查看完整选项,只需列出帮助:

ng help
当然,如果您想要完全控制,您可以通过运行以下命令获得标准的网页配置:


任何时候。

因此,经过数小时的文档搜索、谷歌搜索等,我能够解决上面列出的每一个问题。这很简单

使用CSS预处理器

如@NeilLunn所建议的,要使用SCSS或任何其他预处理器,您可以使用:

"defaults": {
    "styleExt": "scss" // or another pre-processor, or plain css itself.
}
有关使用其他预处理器的更多信息,请参见:

在项目中加载CSS/JS依赖项

这一点很简单。例如,您可以看到如何加载的示例

使用自动刷新器


这是最痛苦的一次,但我终于找到了。事实证明,你所要做的就是,这确实奏效了

ng新样式的SCS
将立即使用SASS。您还可以随时在
.angular cli.json
中重新配置。如果您想要自己的网页配置,请随时弹出。都在文件里。@NeilLunn你能把我和这件事联系起来吗?我好像找不到。也许试着喝一口?AngularJS在当时就这么做了,所以也许你可以使用gulp来运行你的任务,并复制
ng serve
所做的。如果你唯一的问题是SASS,正如@Neil所建议的,你可以打开
angular cli.json
文件并更改扩展名,他会自动编译它(scss,less…)@trichetriche不确定当webpack已经完成了大部分你想做的事情时,你为什么要大口大口地喝!我马上测试一下。还有一件事:一旦SASS被编译成CSS,我想在它上面运行类似Autoprefixer的东西。我想做的另一件事是,我想加载一些前端库。我也可以配置它们吗?@Hassanthaf如前所述,您可以通过运行
ng eject
进一步自定义内容,然后手动更改网页包配置。这还为您的项目添加了sass和较少的依赖项等,并在
package.json中设置脚本。它打破了我的
ng serve
@hassantaltha如果是的,这是唯一的方法,因为angular CLI团队不想在默认情况下公开webpack配置,看在上帝的份上,接受NeilLunn的回答,因为他给了您解决问题所需的一切问题。@Hassanthaf没有更好的办法,你可以永远在这里等待。我只是想说,这就是我们目前所拥有的一切,我甚至问Mike Brocchi(团队成员)在现场聊天的angular air show上,他说这是一项正在进行的工作,目前我们默认情况下不能公开web包配置,祝你好运!
"defaults": {
    "styleExt": "scss" // or another pre-processor, or plain css itself.
}