P16的前端项目使用npm install报错的问题,首先确保安装了python3.0以上版本,并配置全局变量
其次大部分错误是报node-sass安装失败。
执行以下步骤可以完美解决
项目文件夹下打开cmd命令窗口(和Visual Studio Code的终端命令是一样的)
执行:
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
执行成功看看有没有报错,如果没报错执行下面命令
npm install ,
没报错就是安装成功,然后使用npm run dev 就ok了
注:这么做得原理就是先单独从淘宝镜像吧nod-sass下载下来,然后再进行编译,因为这句命令好像是不成功的,(npm config set registry http://registry.npm.taobao.org/),默认从github下载,导致报错的
如果之前安装失败的。先清理 缓存
清理缓存:npm rebuild node-sass
npm uninstall node-sass
这里有两种解决方法
把语法检查器给注释掉(推荐使用)
在路径renren-fast-vue\build\webpack.base.conf.js下
const createLintingRule = () => ({
// test: /\.(js|vue)$/,
// loader: 'eslint-loader',
// enforce: 'pre',
// include: [resolve('src'), resolve('test')],
// options: {
// formatter: require('eslint-friendly-formatter'),
// emitWarning: !config.dev.showEslintErrorsInOverlay
// }
})
修改vue模板格式,这里附带vue创建模板以及常用http和get请求(到后面可能还是会遇到一些语法差异问题,所以两个都配置上的话最优)
{
"生成vue模板": {
"prefix": "vue",
"body": [
"",
"",
"",
"",
"",
""
],
"description": "生成vue模板"
},
"http-get请求": {
"prefix": "httpget",
"body": [
"this.\\$http({",
"url: this.\\$http.adornUrl(''),",
"method: 'get',",
"params: this.\\$http.adornParams({})",
"}).then(({ data }) => {",
"})"
],
"description": "httpGET请求"
},
"http-post请求": {
"prefix": "httppost",
"body": [
"this.\\$http({",
"url: this.\\$http.adornUrl(''),",
"method: 'post',",
"data: this.\\$http.adornData(data, false)",
"}).then(({ data }) => { })"
],
"description": "httpPOST请求"
}
}
亲测可使用版本jar包,默认版本无法使用
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alicloud-ossartifactId>
<version>2.1.1.RELEASEversion>
dependency>
@Valid无法使用
SpringBoot2.3.0之后就不在集成Validation组件了
需要手动导入Spring Boot Starter Validation
这里我用的是
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-validationartifactId>
<version>2.6.0version>
dependency>
使用后你会发现使用postman测试的话,没有任何提示信息
但是可以看出,检测已经生效了,这时我们可以去控制台看输出的信息
2021-11-28 15:08:55.771 WARN 21444 --- [io-10000-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public com.cfk.common.utils.R com.cfk.shopmail.product.controller.BrandController.save(com.cfk.shopmail.product.entity.BrandEntity): [Field error in object 'brandEntity' on field 'name': rejected value []; codes [NotBlank.brandEntity.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [brandEntity.name,name]; arguments []; default message [name]]; default message [品牌名必须提交]] ]
我们可以看到控制台已经输出了提示信息
数据一直无法在级联选择器显示出来
只看到控制台有一条报错
一直怀疑是这个问题,研究了很久发现并不是这个问题
原因是created方法写在methods里面的导致了无法调用列表展示方法…
粗心,这个问题在视频的后面提示先跳过
pms_attr缺失value_type字段,并且在对应实体类也要加上此字段,否则表单无法保存
npm install --save pubsub-js
在src下的main.js中引用:
import PubSub from ‘pubsub-js’
Vue.prototype.PubSub = PubSub
基础属性无法显示的原因是分类组没有绑定对应的属性
可以用postman测试对应返回的数据attrs有null就无法展示(前端设置问题)
也可以通过修改前端判断是否为空
销售属性界面如果查不出任何东西,首先先区测试接口看看接口有没有返回数据,我这里就是一直没有返回数据,但是再销售属性中又能查到
添加跳转
/src/router/index.js 在mainRoutes->children【】里面加上这个就不会404了:{ path: ‘/product-attrupdate’, component: _import(‘modules/product/attrupdate’), name: ‘attr-update’, meta: { title: ‘规格维护’, isTab: true } }
下面这个是点击维护后上面会有弹导航栏
【INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num) VALUES (76, 37, ‘规格维护’, ‘product/attrupdate’, ‘’, 2, ‘log’, 0);】