angular脚手架安装的踩坑记录
Posted 香菇怪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular脚手架安装的踩坑记录相关的知识,希望对你有一定的参考价值。
如果要安装angular的脚手架首先要先确保node的版本是在14.20.0以上,npm也要升级到9以上,至于为什么,这个是我同事告诉我的,也可以到官网上查看。
当我安装了14.20.0的node以后执行ng命令还是报错:
我起初以为是这个警告:npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs的问题。
后来感觉这个’ng’不是内部或者外部应该是和环境变量有关系,查了资料以后发现只要加上一个环境变量C:\\nodejs\\node_global(按照自己安装的路径来就可以了)就可以了。
后面就是安装angular脚手架的基本操作了:
npm install –g @angular/cli (下载脚手架,如果之前安装过未成功的卸载一下:npm uninstall –g @angular/cli)
查看是否成功就直接用ng version 不要用ng –v等等,否则就会报错ERROR:You need to specify a command before moving on. Use '--help' to view the available commands.
Would you like to share pseudonymous usage data about this project with the Angular Team
at Google under Google's Privacy Policy at https://policies.google.com/privacy. For more
details and how to change this setting, see https://angular.io/analytics.
选择N
ng new projectname (创建项目)
选择自己所需要的
ng serve –open (启动项目,注意这里是serve 不是server )
这样就可以成功启动了!
又由于之前的项目需要8的node和6的npm所以先用:npm install npm@6.0.1 –g 把npm降下来
再卸载(直接去控制面板卸载)node
最后再重装8的node
就可以运行原来的项目了
如果先去卸载node就会出现以下报错:
ERROR:npm v9.4.0 is known not to run on Node.js v8.11.1 You’ll need to upgrade to a newer Node.js version in order to use this version of npm.
Laravel Entrust 权限管理扩展包的踩坑记录
简介
Entrust 是一个基于角色来进行权限管理的 Laravel 扩展包。官方推荐的安装版本是 5.2.x-dev,看了下 Packagist 这个版本的最新提交日期是 2016-12-29。迟迟不发布新版本,有点小坑小洞就只能靠自己想办法解决了。
踩坑一:entrust:migration 命令执行报错
在对 Entrust 进行配置时就遇到了问题。生成 Entrust 要用到的迁移文件时报错:
$ php artisan entrust:migration --env=dev
In BoundMethod.php line 135:
Method ZizacoEntrustMigrationCommand::handle() does not exist
解决方法:
在 app/Providers/AppServiceProvider.php 中 register() 方法中加上如下代码:
$this->app->extend(‘command.entrust.migration‘, function () { return new class extends izacoEntrustMigrationCommand { public function handle() { parent::fire(); } }; });
踩坑二:@permission 命令不支持自定义 user guard
Laravel 默认的用户认证是 users 表,Entrust 自定义的 blade 命令 @permission 不支持自定义 user guard。默认只支持 users 用户。
普遍场景是有一个 admin_users 管理员用户表,对这个表需要进行用户认证和权限管理。先在 config/auth.php 中增加名称为 admin_user 的 user guard。然后在 app/Providers/AppServiceProvider.php 中 boot() 方法增加如下代码:
Blade::directive(‘mypermission‘, function ($expression) { return "<?php if (\Auth::guard(‘admin_user‘)->user()->can({$expression})) : ?>"; }); Blade::directive(‘endmypermission‘, function ($expression) { return "<?php endif; // Entrust::can ?>"; });
相当于在 blade 中新增了两条命令 @mypermission 和 @endmypermission,针对 admin_users 用户进行权限检查。用 @mypermission 命令代替扩展包自带的 @permission 就行了。
以上是关于angular脚手架安装的踩坑记录的主要内容,如果未能解决你的问题,请参考以下文章