Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: 补充 swiper 相关的 example #16771

Merged
merged 6 commits into from
Oct 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions examples/swiper-effect/.env.development
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# 配置文档参考 https://taro-docs.jd.com/docs/next/env-mode-config
# TARO_APP_ID="开发环境下的小程序 AppID"
1 change: 1 addition & 0 deletions examples/swiper-effect/.env.production
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# TARO_APP_ID="生产环境下的小程序 AppID"
1 change: 1 addition & 0 deletions examples/swiper-effect/.env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# TARO_APP_ID="测试环境下的小程序 AppID"
7 changes: 7 additions & 0 deletions examples/swiper-effect/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": ["taro/react"],
"rules": {
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off"
}
}
7 changes: 7 additions & 0 deletions examples/swiper-effect/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dist/
deploy_versions/
.temp/
.rn_temp/
node_modules/
.DS_Store
.swc
11 changes: 11 additions & 0 deletions examples/swiper-effect/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// babel-preset-taro 更多选项和默认值:
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
module.exports = {
presets: [
['taro', {
framework: 'react',
ts: true,
compiler: 'webpack5',
}]
]
}
9 changes: 9 additions & 0 deletions examples/swiper-effect/config/dev.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import type { UserConfigExport } from "@tarojs/cli";
export default {
logger: {
quiet: false,
stats: true
},
mini: {},
h5: {}
} satisfies UserConfigExport<'webpack5'>
108 changes: 108 additions & 0 deletions examples/swiper-effect/config/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
import { defineConfig, type UserConfigExport } from '@tarojs/cli'
import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin'
import devConfig from './dev'
import prodConfig from './prod'

// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
export default defineConfig<'webpack5'>(async (merge, { command, mode }) => {
const baseConfig: UserConfigExport<'webpack5'> = {
projectName: '4.0.4',
date: '2024-7-29',
designWidth: 750,
deviceRatio: {
640: 2.34 / 2,
750: 1,
375: 2,
828: 1.81 / 2
},
sourceRoot: 'src',
outputRoot: 'dist',
plugins: [
],
defineConstants: {
},
copy: {
patterns: [
],
options: {
}
},
framework: 'react',
compiler: {
type: 'webpack5',
prebundle: {
enable: false
}
},
cache: {
enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
},
mini: {
postcss: {
pxtransform: {
enable: true,
config: {

}
},
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
config: {
namingPattern: 'module', // 转换模式,取值为 global/module
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
},
webpackChain(chain) {
chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin)
}
},
h5: {
imageUrlLoaderOption:{
limit: 92 * 1024
},
// useHtmlComponents: true,
publicPath: '/',
staticDirectory: 'static',
output: {
filename: 'js/[name].[hash:8].js',
chunkFilename: 'js/[name].[chunkhash:8].js'
},
miniCssExtractPluginOption: {
ignoreOrder: true,
filename: 'css/[name].[hash].css',
chunkFilename: 'css/[name].[chunkhash].css'
},
postcss: {
autoprefixer: {
enable: true,
config: {}
},
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
config: {
namingPattern: 'module', // 转换模式,取值为 global/module
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
},
webpackChain(chain) {
chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin)
}
},
rn: {
appName: 'taroDemo',
postcss: {
cssModules: {
enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
}
}
}
}
if (process.env.NODE_ENV === 'development') {
// 本地开发构建配置(不混淆压缩)
return merge({}, baseConfig, devConfig)
}
// 生产构建配置(默认开启压缩混淆等)
return merge({}, baseConfig, prodConfig)
})
32 changes: 32 additions & 0 deletions examples/swiper-effect/config/prod.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import type { UserConfigExport } from "@tarojs/cli";
export default {
mini: {},
h5: {
/**
* WebpackChain 插件配置
* @docs https://github.com/neutrinojs/webpack-chain
*/
// webpackChain (chain) {
// /**
// * 如果 h5 端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。
// * @docs https://github.com/webpack-contrib/webpack-bundle-analyzer
// */
// chain.plugin('analyzer')
// .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
// /**
// * 如果 h5 端首屏加载时间过长,可以使用 prerender-spa-plugin 插件预加载首页。
// * @docs https://github.com/chrisvfritz/prerender-spa-plugin
// */
// const path = require('path')
// const Prerender = require('prerender-spa-plugin')
// const staticDir = path.join(__dirname, '..', 'dist')
// chain
// .plugin('prerender')
// .use(new Prerender({
// staticDir,
// routes: [ '/pages/index/index' ],
// postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') })
// }))
// }
}
} satisfies UserConfigExport<'webpack5'>
82 changes: 82 additions & 0 deletions examples/swiper-effect/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"name": "swiper-effect",
"version": "1.0.0",
"private": true,
"description": "",
"templateInfo": {
"name": "default",
"typescript": true,
"css": "Sass",
"framework": "React"
},
"scripts": {
"build:weapp": "taro build --type weapp",
"build:swan": "taro build --type swan",
"build:alipay": "taro build --type alipay",
"build:tt": "taro build --type tt",
"build:h5": "taro build --type h5",
"build:rn": "taro build --type rn",
"build:qq": "taro build --type qq",
"build:jd": "taro build --type jd",
"build:harmony-hybrid": "taro build --type harmony-hybrid",
"dev:weapp": "npm run build:weapp -- --watch",
"dev:swan": "npm run build:swan -- --watch",
"dev:alipay": "npm run build:alipay -- --watch",
"dev:tt": "npm run build:tt -- --watch",
"dev:h5": "npm run build:h5 -- --watch",
"dev:rn": "npm run build:rn -- --watch",
"dev:qq": "npm run build:qq -- --watch",
"dev:jd": "npm run build:jd -- --watch",
"dev:harmony-hybrid": "npm run build:harmony-hybrid -- --watch"
},
"browserslist": [
"defaults and fully supports es6-module",
"maintained node versions"
],
"author": "",
"dependencies": {
"@babel/runtime": "^7.24.4",
"@tarojs/components": "4.0.7",
"@tarojs/helper": "4.0.7",
"@tarojs/plugin-framework-react": "4.0.7",
"@tarojs/plugin-inject": "4.0.7",
"@tarojs/plugin-platform-alipay": "4.0.7",
"@tarojs/plugin-platform-h5": "4.0.7",
"@tarojs/plugin-platform-harmony-hybrid": "4.0.7",
"@tarojs/plugin-platform-jd": "4.0.7",
"@tarojs/plugin-platform-qq": "4.0.7",
"@tarojs/plugin-platform-swan": "4.0.7",
"@tarojs/plugin-platform-tt": "4.0.7",
"@tarojs/plugin-platform-weapp": "4.0.7",
"@tarojs/react": "4.0.7",
"@tarojs/runtime": "4.0.7",
"@tarojs/shared": "4.0.7",
"@tarojs/taro": "4.0.7",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@babel/core": "^7.24.4",
"@babel/plugin-proposal-class-properties": "7.14.5",
"@babel/preset-react": "^7.24.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
"@tarojs/cli": "4.0.7",
"@tarojs/taro-loader": "4.0.7",
"@tarojs/webpack5-runner": "4.0.7",
"@types/node": "^18",
"@types/react": "^18.0.0",
"@types/webpack-env": "^1.13.6",
"babel-preset-taro": "4.0.7",
"eslint": "^8.57.0",
"eslint-config-taro": "4.0.7",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.4.0",
"postcss": "^8.4.38",
"react-refresh": "^0.14.0",
"sass": "^1.75.0",
"stylelint": "^16.4.0",
"tsconfig-paths-webpack-plugin": "^4.1.0",
"typescript": "^5.4.5",
"webpack": "5.91.0"
}
}
15 changes: 15 additions & 0 deletions examples/swiper-effect/project.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"miniprogramRoot": "./dist",
"projectname": "4.0.4",
"description": "",
"appid": "touristappid",
"setting": {
"urlCheck": true,
"es6": false,
"enhance": false,
"compileHotReLoad": false,
"postcss": false,
"minified": false
},
"compileType": "miniprogram"
}
32 changes: 32 additions & 0 deletions examples/swiper-effect/src/app.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
export default defineAppConfig({
pages: [
'pages/index/index',
'pages/effect-cube/index',
'pages/effect-flip/index',
'pages/effect-card/index',
'pages/effect-fade/index',
'pages/effect-coverflow/index',
'pages/effect-creative/index',
'pages/effect/index'
],
window: {
backgroundTextStyle: 'light',
navigationBarBackgroundColor: '#fff',
navigationBarTitleText: 'WeChat',
navigationBarTextStyle: 'black',
navigationStyle: 'default'
},
animation: false,
tabBar:{
list:[
{
pagePath:'pages/index/index',
text:'常规用法',
},
{
pagePath:'pages/effect/index',
text:'effect',
}
]
}
})
Empty file.
16 changes: 16 additions & 0 deletions examples/swiper-effect/src/app.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { PropsWithChildren } from 'react'
import { useLaunch } from '@tarojs/taro'
import './app.scss'

function App({ children }: PropsWithChildren<any>) {
useLaunch(() => {
console.log('App launched.')
})

// children 是将要会渲染的页面
return children
}



export default App
23 changes: 23 additions & 0 deletions examples/swiper-effect/src/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="width=device-width,initial-scale=1,user-scalable=no" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="format-detection" content="telephone=no,address=no">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
<title>4.0.4</title>
<script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script>
<!-- <script>
// 初始化
var vConsole = new VConsole();
console.log('Hello world');
</script> -->
<script><%= htmlWebpackPlugin.options.script %></script>
</head>
<body>
<div id="app"></div>
</body>
</html>
3 changes: 3 additions & 0 deletions examples/swiper-effect/src/pages/effect-card/index.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default definePageConfig({
navigationBarTitleText: 'cards'
})
21 changes: 21 additions & 0 deletions examples/swiper-effect/src/pages/effect-card/index.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.card-swiper-wrap{
width: 600px;
height: 600px;
// background-color: pink;
}
.card-img {
width: 100%;
height: 100%;

}
.card-wrap {
display: flex;
height: 800px;
align-items: center;
justify-content: center;
background-color: #eee;
}
.card-item {
border-radius: 10px;
background-color: yellow;
}
Loading
Loading