Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
881dd022
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3598
Star
108
Fork
921
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
109
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
109
合并请求
109
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
881dd022
编写于
7月 02, 2022
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改pages-init位置
上级
ef26a5d6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
117 addition
and
75 deletion
+117
-75
docs/plugin/publish.md
docs/plugin/publish.md
+7
-37
docs/plugin/uni_modules.md
docs/plugin/uni_modules.md
+110
-38
未找到文件。
docs/plugin/publish.md
浏览文件 @
881dd022
...
...
@@ -46,7 +46,7 @@ Tips:
若页面模板依赖其它组件,则需将依赖组件一起打包;假设"xiaoming-setting"依赖小红开发的list组件(xiaohong-list),则发布"xiaoming-setting"页面模板时,目录结构要求如下:

HBuilderX 3.5.0+ 支持插件导入工程时,
会自动合并预先配置好的页面路由到项目的 pages.json
[
详情查看
](
https://uniapp.dcloud.io/plugin/publish.html#
pages-init
)
HBuilderX 3.5.0+ 支持插件导入工程时,
支持合并页面路由到项目的 pages.json。
[
详见
](
uni_modules.md?id=
pages-init
)
Tips:
-
vue 页面模板和 nvue 页面模板目录结构要求相同。
...
...
@@ -130,11 +130,14 @@ encrypt数组中可灵活配置uniCloud/cloudfunctions下云函数及公共模
> 如果你的插件配置包含涉密信息,希望保护这些配置不被上传参考:[uni_modules插件上传辅助脚本示例](https://ext.dcloud.net.cn/plugin?id=5256)
### 云端一体页面模板
云端一体页面模板为单页面模板,为了防止导入时与项目现有代码冲突,需注意以下几点命名规范:
云端一体页面模板,如果非
`uni_modules`
,则为单页面模板,只能放一个页面。如果是
`uni_modules`
,可以放任意数量页面。
为了防止导入时与项目现有代码冲突,需注意以下几点命名规范:
-
必须包含云函数相关目录(uniCloud/cloudfunctions),可以包含js_sdk、pages、components、static等目录
-
云函数、公共模块命名需要包含“-”
-
云函数、公共模块命名需要包含“-”
,即有插件ID前缀。
-
js_sdk、components、static等目录下的子目录及文件命名需要包含“-”
-
不能包含根目录的 manifest.json、App.vue、main.js 等文件
-
如需注册页面到项目的pages.json中,参考
[
uni_modules文档
](
uni_modules.md?id=pages-init
)
### 前后一体项目模板
与uni-app前端项目模板目录结构基本一致,但是必须包含uniCloud相关目录(uniCloud-aliyun、uniCloud-tcb)
...
...
@@ -150,40 +153,7 @@ encrypt数组中可灵活配置uniCloud/cloudfunctions下云函数及公共模
主要用于提交数据表schema及校验函数,所以必须包含uniCloud-aliyun/database 或 uniCloud-tcb/database目录
## pages_init
HBuilderX 3.5.0+ 当uni_modules插件根目录下存在
`pages_init.json`
文件,在插件导入工程时,会自动合并预先配置好的页面路由到项目的 pages.json。注意:pages_init.json文件最终不会导入到工程中。
示例插件:
[
问题反馈页面管理员端模板
](
https://ext.dcloud.net.cn/plugin?id=4992
)
示例代码如下:
```
json
{
"pages"
:
[{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/add"
,
"style"
:
{
"navigationBarTitleText"
:
"新增"
}
},
{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/edit"
,
"style"
:
{
"navigationBarTitleText"
:
"编辑"
}
},
{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/list"
,
"style"
:
{
"navigationBarTitleText"
:
"列表"
}
}
]
}
```
完整的pages参数
[
详情查看
](
https://uniapp.dcloud.io/collocation/pages.html#pages
)
HBuilderX中合并路由界面效果图:

文档已迁移至
[
uni_modules文档
](
uni_modules.md?id=pages-init
)
## 注意
-
uni-app原生SDK及web项目两个分类下插件发布后需要审核才会生效。
...
...
docs/plugin/uni_modules.md
浏览文件 @
881dd022
...
...
@@ -24,8 +24,17 @@
3.
插件文件位置统一,不会造成下载一个插件,不知道给工程下多少个目录写入了多少个文件。删除插件时也可以一点删除
### 目录结构
#### 项目插件的uni_modules
`uni_modules`
插件如果是项目类型的插件,只需要在项目的根目录下放一个符合
`uni_modules`
规范的package.json。
右键点击这个package.json,即可对这个项目插件进行更新、或发布到插件市场。
比如
[
uni-admin
](
https://ext.dcloud.net.cn/plugin?id=3268
)
、
[
uni-starter
](
https://ext.dcloud.net.cn/plugin?id=5057
)
,都可以通过这种方式更新。
#### 非项目插件的uni_modules
如果是非项目类型的插件,比如组件、js sdk、页面模板、云函数,则需要放置在项目的
`uni_modules`
目录下。
此时
`uni_modules`
目录下的目录结构和uni-app的项目结构是一致的,如下:
...
...
@@ -47,11 +56,58 @@ uni_modules 项目根目录下
├── menu.json 如果是uniCloud admin插件,可以通过menu.json注册动态菜单,
<a
href=
"/uniCloud/admin?id=admin-%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91"
>
详见 menu.json 配置
</a>
</code>
</pre>
也就是
`uni_modules`
目录下相当于复制一遍uni-app的项目结构。
**Tips**
-
插件目录不支持pages.json、App.vue、main.js、manifest.json、uni.scss文件,如果需要插件使用者修改这些文件内容,请在插件文档(readme.md)中详细说明。
-
插件目录支持
`pages_init.json`
,可以方便注册页面到项目的pages.json中,
[
见下
](
?id=pages-init
)
-
在插件内部引用资源、跳转页面时,请尽量使用相对路径。
-
插件内components目录同样支持easycom规范,插件使用者可以直接在项目中使用插件内符合easycom规范的组件,当项目或插件内存在easycom组件冲突,编译时会给予提示,您可以通过修改组件目录及组件文件名称来解决冲突问题。
在HBuilderX中,
`uni_modules`
下如果包含了uniCloud目录的内容,会被以引用的方式,显示到主项目根目录下的uniCloud中。此时文件前的图标左下角会显示一个快捷方式箭头。
如下图,项目中有一个
`uni_modules`
名为
`uni-config-center`
,它下面包含了名为
`uni-config-center`
的公共模块。所以在项目根目录的公共模块目录common下,也会多出一个
`uni-config-center`
。

HBuilderX 中打开配有引用图标指示的文件,会打开原始地址。
### 使用 uni_modules 插件
#### 下载uni_modules插件
1.
在
[
插件市场
](
https://ext.dcloud.net.cn/
)
查找uni_modules插件
2.
在插件详情页,右侧会标明该插件是否支持uni_modules,点击
`使用 HBuilderX 导入插件`

3.
选择要导入的uni-app项目

**Tips**
-
uni_modules支持组件easycom,使用者可以直接使用插件内符合easycom规范的组件
-
其他资源,如图片,js等,在项目中可以直接按目录结构引入即可使用,如:
```
js
import
{
test
}
from
'
@/uni_modules/xx-yy/js_sdk/test.js
'
```
-
如果要使用uni_modules中的页面,
[
见下
](
?id=pages-init
)
#### 安装uni_modules插件依赖
1.
导入插件时,HBuilderX会自动安装当前插件的所有三方依赖。
2.
您还可以在插件目录右键手动执行
`安装插件三方依赖`

#### 更新uni_modules插件
1.
可以通过插件目录右键
`从插件市场更新`
,来检查更新当前所使用的插件

2.
对比插件,确认更新内容

#### 卸载uni_modules插件
uni_modules插件目录是独立存在的,如果您不再需要该插件,可以直接删除该插件目录。
**Tips**
-
导入uni_modules规范插件需要使用 3.1.0 以上版本的 HBuilderX
### 配置
#### package.json
...
...
@@ -177,6 +233,59 @@ package-lock.json
-
项目根目录下的
`.npmignore`
对发布项目、插件模板生效。
`uni_modules/插件Id/.npmignore`
对发布插件生效
#### pages_init页面注册@pages-init
> 新增于HBuilderX 3.5.0+
过去,插件作者提供页面类插件时,需要在文档中手动告知使用者在pages.json中注册哪些页面。如:
```
json
{
"pages"
:[{
"path"
:
"uni_modules/xx-yy/pages/demo/demo"
//
按插件所在目录引入对应的页面
}]
}
```
`pages_init.json`
解决了这个烦恼。
当uni_modules插件根目录下存在
`pages_init.json`
文件,在插件导入工程时,会弹出一个合并页面路由的pages.json修改界面。插件使用者点击确认按钮即可完成插件页面向项目pages.json的注册。
示例插件:
[
问题反馈页面管理员端模板
](
https://ext.dcloud.net.cn/plugin?id=4992
)
示例代码如下:
```
json
{
"pages"
:
[{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/add"
,
"style"
:
{
"navigationBarTitleText"
:
"新增"
}
},
{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/edit"
,
"style"
:
{
"navigationBarTitleText"
:
"编辑"
}
},
{
"path"
:
"uni_modules/uni-feedback-admin/pages/uni-feedback-admin/list"
,
"style"
:
{
"navigationBarTitleText"
:
"列表"
}
}
]
}
```
完整的pages参数
[
详情查看
](
https://uniapp.dcloud.io/collocation/pages.html#pages
)
HBuilderX中合并路由界面效果图:

**注意**
-
`pages_init.json`
文件最终不会导入到工程中。
-
如果HBuilderX版本低于3.5,或插件作者并没有提供
`pages_init.json`
,那么仍然需要手动编辑pages.json注册页面。
### 开发 uni_modules 插件
#### 新建uni_modules目录
在uni-app项目根目录下,创建uni_modules目录,在HBuilderX中可以项目右键菜单中点击
`新建uni_modules目录`
...
...
@@ -229,43 +338,6 @@ package-lock.json
**Tips**
-
在发布窗口中填写的更新日志,会自动与根目录的changelog.md保持同步
### 使用 uni_modules 插件
#### 添加uni_modules插件
1.
在
[
插件市场
](
https://ext.dcloud.net.cn/
)
查找符合自己需求的uni_modules插件
2.
在插件详情页,右侧会标明该插件是否支持uni_modules,点击
`使用 HBuilderX 导入插件`

3.
选择要导入的uni-app项目

**Tips**
-
uni_modules支持组件easycom,使用者可以直接使用插件内符合easycom规范的组件
-
其他资源,如图片,js等,在项目中可以直接按目录结构引入即可使用,如:
```
js
import
{
test
}
from
'
@/uni_modules/xx-yy/js_sdk/test.js
'
```
-
如果要使用uni_modules中的页面,您需要在自己项目根目录的pages.json中添加对应的页面配置
```
json
{
"pages"
:[{
"path"
:
"uni_modules/xx-yy/pages/demo/demo"
//
按插件所在目录引入对应的页面
}]
}
```
#### 安装uni_modules插件依赖
1.
导入插件时,HBuilderX会自动安装当前插件的所有三方依赖。
2.
您还可以在插件目录右键手动执行
`安装插件三方依赖`

#### 更新uni_modules插件
1.
可以通过插件目录右键
`从插件市场更新`
,来检查更新当前所使用的插件

2.
对比插件,确认更新内容

#### 卸载uni_modules插件
uni_modules插件目录是独立存在的,如果您不再需要该插件,可以直接删除该插件目录。
**Tips**
-
导入uni_modules规范插件需要使用 3.1.0 以上版本的 HBuilderX
### 已有插件迁移为 uni_modules 插件指南
...
...
@@ -283,5 +355,5 @@ uni_modules插件目录是独立存在的,如果您不再需要该插件,可
```
-
插件文档,迁移至插件根目录的readme.md中
-
右键package.json,点击
`发布到插件市场`
,选择分类,填写插件信息(尽可能与插件市场已有信息保持一致)
-
发布成功后,您可以在插件市场的插件详情页右侧,查看到您的插件已同时提供了
uni_modules版本和非uni_modules版本(仅保留最后一个非uni_modules
版本)
-
发布成功后,您可以在插件市场的插件详情页右侧,查看到您的插件已同时提供了
`uni_modules`
版本和非
`uni_modules`
版本(仅保留最后一个非
`uni_modules`
版本)

编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录