uni-app 发布插件报uni_modules中插件的package.json格式不正确,但是明明没有问题
uni-app 发布插件报uni_modules中插件的package.json格式不正确,但是明明没有问题
操作步骤:
- 在插件市场发布云端一体项目模板
预期结果:
- 正常发布
实际结果:
- 报uni_modules中插件的package.json格式不正确,但是明明没有问题
bug描述:
- 在插件市场发布云端一体项目模板,报uni_modules中插件的package.json格式不正确,但是明明没有问题
{
“id”: “sv-json-view”,
“displayName”: “sv-json-view”,
“version”: “1.0.0”,
“description”: “json数据格式化可视化展示”,
“keywords”: [
“sv-json-view”,
“json”,
“格式化”,
“可视化”
],
“repository”: “”,
“engines”: {
“HBuilderX”: “^3.5.5”
},
“dcloudext”: {
“type”: “component-vue”,
“sale”: {
“regular”: {
“price”: “0.00”
},
“sourcecode”: {
“price”: “0.00”
}
},
“contact”: {
“qq”: “”
},
“declaration”: {
“ads”: “无”,
“data”: “插件不采集任何数据”,
“permissions”: “无”
},
“npmurl”: “”
},
“uni_modules”: {
“dependencies”: [],
“encrypt”: [],
“platforms”: {
“cloud”: {
“tcb”: “y”,
“aliyun”: “y”
},
“client”: {
“Vue”: {
“vue2”: “u”,
“vue3”: “y”
},
“App”: {
“app-vue”: “y”,
“app-nvue”: “u”,
“app-uvue”: “u”
},
“H5-mobile”: {
“Safari”: “y”,
“Android Browser”: “y”,
“微信浏览器(Android)”: “y”,
“QQ浏览器(Android)”: “y”
},
“H5-pc”: {
“Chrome”: “y”,
“IE”: “u”,
“Edge”: “y”,
“Firefox”: “y”,
“Safari”: “y”
},
“小程序”: {
“微信”: “y”,
“阿里”: “y”,
“百度”: “u”,
“字节跳动”: “u”,
“QQ”: “u”,
“钉钉”: “u”,
“快手”: “u”,
“飞书”: “u”,
“京东”: “u”
},
“快应用”: {
“华为”: “u”,
“联盟”: “u”
}
}
}
}
}
他说这个json格式不正确,不知道问题在哪,这个文件又没动过
改成发布 uni-app前端项目模板 就能正常发布,感觉有点奇怪
在使用 uni-app 发布插件时,如果遇到 uni_modules
中插件的 package.json
格式不正确的报错,尽管你确认文件内容没有问题,可能还是有一些细节需要注意。以下是一些可能的原因和解决方法:
1. 检查 package.json
文件格式
- 确保
package.json
文件是一个有效的 JSON 文件,且没有语法错误。 - 可以使用在线 JSON 校验工具(如 jsonlint.com)来验证
package.json
文件是否合法。
2. 检查 package.json
的必填字段
package.json
中必须包含一些必填字段,如name
、version
、description
等。确保这些字段都存在且格式正确。- 例如:
{ "name": "my-plugin", "version": "1.0.0", "description": "A uni-app plugin", "main": "index.js", "author": "Your Name", "license": "MIT" }
3. 检查 uni_modules
目录结构
- 确保插件目录结构符合 uni-app 的要求。插件应该放在
uni_modules
目录下,并且package.json
文件应该位于插件的根目录。 - 例如:
uni_modules/ └── my-plugin/ ├── package.json ├── index.js └── other-files/
4. 检查 package.json
中的 uni-app
相关字段
- 如果插件是为 uni-app 开发的,确保
package.json
中包含uni-app
相关的字段,如uni-app
或uni_modules
。 - 例如:
{ "name": "my-plugin", "version": "1.0.0", "description": "A uni-app plugin", "main": "index.js", "author": "Your Name", "license": "MIT", "uni-app": { "scripts": { "postinstall": "node postinstall.js" } } }
5. 检查文件编码
- 确保
package.json
文件的编码是 UTF-8,而不是其他编码格式(如 UTF-8 with BOM)。某些编辑器可能会默认保存为带 BOM 的 UTF-8,这可能会导致解析错误。
6. 清除缓存并重新构建
- 有时候,构建工具可能会缓存旧的
package.json
文件。尝试清除缓存并重新构建项目。 - 在命令行中运行以下命令:
npm cache clean --force npm install