小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
通过taro指令创建一个基础项目,因为第三方的UI
库和taro
项目目录结构基本保持一致
创建完成项目之后便需要进行改造
export { default as Test } from './components/test/test'
export { default as Foo } from './components/foo/foo'
-
配置文件改造
为了打包出可以在 H5 端使用的组件库,需要在
config/index.js
文件中增加一些配置if (process.env.TARO_BUILD_TYPE === 'ui') { Object.assign(config.h5, { enableSourceMap: false, enableExtract: false, enableDll: false }) config.h5.webpackChain = chain => { chain.plugins.delete('htmlWebpackPlugin') chain.plugins.delete('addAssetHtmlWebpackPlugin') chain.merge({ output: { path: path.join(process.cwd(), 'dist', 'h5'), filename: 'index.js', libraryTarget: 'umd', library: 'taro-ui-sample' }, externals: { nervjs: 'commonjs2 nervjs', classnames: 'commonjs2 classnames', '@tarojs/components': 'commonjs2 @tarojs/components', '@tarojs/taro-h5': 'commonjs2 @tarojs/taro-h5', 'weui': 'commonjs2 weui' } }) } }
-
打包命令
通过打包指令便可以将其打包
$ TARO_BUILD_TYPE=ui taro build --ui
至此基础的第三方UI库准备工作已完成
此项目可以通过打包指令作为npm
包使用,也可以作为独立的项目使用
当作为单独的项目使用时,将components
中的路由页面引入放置在pages
目录下,作为项目的组件进行使用即可
发布 npm
已经准备好第三方库,接下来便是将其作为npm
包进行发版,在发布npm
时除了常规的npm publish
等常规操作之外,需要注意两点
-
.gitignore
不能包含dist
目录执行
TARO_BUILD_TYPE=ui taro build --ui
便会将组件库打包,需要将打包生成的dist
目录发布且上传 -
修改
package.json
的main
属性、当作为第三方库被下载引入使用时,需要指定入口
{
"main": "dist/index.js",
"main:h5": "dist/h5/index.js",
}
使用
npm
包发版之后,便可以通过npm i xxx
下载并在项目中使用
注意点
配置需要额外编译的源码模块在config/index.js
增加esnextModules
配置
由于引用 node_modules
的模块,默认不会编译,所以需要额外给 H5 配置 esnextModules
,在 taro 项目的 config/index.js
中新增如下配置项
const condif = {
h5: {
esnextModules: ['xxx'] // npm包名
}
}
在项目中使用
import { Foo } from 'hb-market'
class Index extends Component{
render() {
return (
<View>
<Foo></Foo>
</View>
)
}
}
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。
在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。
本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。
除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。
在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!