有人成功将.pug添加到angular-cli中了吗?
我尝试运行npm install pug --save,但我不知道在哪里更改呈现方式,以便使用.pug代替.html。
angular-cli的链接在这里
请分享一个简短的教程,这将帮助很多人 :)
有人成功将.pug添加到angular-cli中了吗?
我尝试运行npm install pug --save,但我不知道在哪里更改呈现方式,以便使用.pug代替.html。
angular-cli的链接在这里
请分享一个简短的教程,这将帮助很多人 :)
对于 Angular 6+,您可以在根文件夹中运行 ng add ng-cli-pug-loader 命令来启用您的 angilar-cli 项目中的 pug 支持。
所以在阅读了关于angular-cli git的内容后,实现pug并不是近期的计划。
那么这里有一个解决方法:它不是angular-cli,但是它是一个更新的生成器,可以运行angular2 final。
使用来自AngularClass的angular2-webpack生成器 - 这里 (只需按照文档中详细的说明操作)
想要pug?没问题,只需跟随链接这里
想要Scss?没问题,只需跟随链接这里
简而言之,只需进行npm安装并将这些行添加到webpack.common文件中。然后在组件中使用require()和./filename.pug :) 但请跟随链接,您会没问题的。
感谢AngularClass <3
这就是我一直在寻找的 - angular2、typescript、scss和pug.. 真香!
loaders: [
{
test: /\.pug$/,
loader: 'pug-html-loader'
},
{
test: /\.scss$/,
exclude: /node_modules/,
loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader
},
npm install pug-cli --save-dev
命令安装 pug-cli。现在你可以将你的 .pug
文件编译成 .html
。package.json
的 scripts 中添加一行新的 script
: "puggy": "pug src -P -w"
。这将把 src
内的所有 .pug
文件编译为 .html
并开始监视它们。当然,任务名称无关紧要。start
任务,或创建一个新的任务,先运行 puggy
然后再运行 serve
: "start" : "npm run puggy & ng serve"
。你的 package.json
应该是这样的:
"scripts": {
"ng": "ng",
"start" : "npm run puggy & ng serve",
"puggy": "pug src -P -w",
. . . other tasks
}
npm start
,或者你给任务命名的任何名称,并且你应该看到所有的.pug
文件被编译/监视/渲染,然后一切都被提供出来。.html
文件添加到您的.gitignore
中,将/src/**/*.html
添加到其中,并仅将.pug
文件推送到您的存储库中。确保使用git rm --cached *.html
删除缓存的.html
文件。form(novalidate, '#f'='ngForm', '(ngSubmit)'='onSignin(f)')
<form novalidate="novalidate" #f="ngForm" (ngSubmit)="onSignin(f)"></form>
多年来,我一直在使用(相当脆弱的)ng-cli-pug-loader方法。它有其作用,我很感激它,但我开发了一种(稍微不那么脆弱的)添加pug支持的方法。虽然它不能通过Angular CLI自动完成 - 也许有人可以帮忙?但现在对于我认为更好的解决方案来说,步骤并不是太多。
我在这里记录了{{Angular pug solution}},以备后人查阅,请查看README的顶部进行解释。
如果您想要一个更加稳定的方法(不会创建新的AngularCompilerPlugin),请查看angular.webpack.js和函数addSimplePugSupport
。
如果您发现问题,请通过此处的评论或我的Git存储库让我知道。
如果你想要使用Stylus。
{
test:/\.styl$/,
use: ['to-string-loader', 'css-loader', 'stylus-loader'],
}
SCSS的配置已经被更改
{
test: /\.scss$/,
use: ['to-string-loader', 'css-loader', 'sass-loader'],
exclude: [helpers.root('src', 'styles')]
}