Skip to content

Commit 9a5fc41

Browse files
committed
Merge branch 'feat_v3.x' into feat_harmony_shortpassword
# Conflicts: # src/config.json # src/packages/overlay/overlay.taro.tsx
2 parents abac235 + c5f27c5 commit 9a5fc41

File tree

225 files changed

+3559
-6091
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+3559
-6091
lines changed

CHANGELOG.md

Lines changed: 99 additions & 1340 deletions
Large diffs are not rendered by default.

migrate-from-v2.md

Lines changed: 104 additions & 693 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nutui/nutui-react-taro",
3-
"version": "3.0.0-beta.15",
3+
"version": "3.0.0",
44
"style": "dist/style.css",
55
"main": "dist/nutui.react.umd.js",
66
"module": "dist/es/packages/nutui.react.build.js",
@@ -57,10 +57,10 @@
5757
"dev:rtl": "VITE_RTL=rtl vite --open --force",
5858
"dev:jrkf": "VITE_APP_PROJECT_ID=jrkf vite --open --force",
5959
"dev:taro:rn:dark": "THEME=dark pnpm dev:taro:rn",
60-
"predev:taro": "SKIPDD=1 pnpm run update:taro:entry",
60+
"predev:taro": "pnpm run update:taro:entry",
6161
"dev:taro": "pnpm --dir ./packages/nutui-taro-demo dev",
6262
"dev:taro:h5": "pnpm dev:taro h5",
63-
"predev:jdtaro": "SKIPDD=1 pnpm run update:taro:entry",
63+
"predev:jdtaro": "pnpm run update:taro:entry",
6464
"dev:jdtaro": "JD=1 pnpm --dir ./packages/nutui-taro-demo dev",
6565
"dev:jdtaro:jdharmonycpp": "pnpm run clone:jdharmony cpp && pnpm run update:taro:entry && JD=1 pnpm --dir ./packages/nutui-taro-demo dev:jdharmonycpp",
6666
"dev:jdtaro:jdharmony": "pnpm run clone:jdharmony && pnpm run update:taro:entry && JD=1 pnpm --dir ./packages/nutui-taro-demo dev:jdharmony",
@@ -70,7 +70,7 @@
7070
"build:taro:jmapp": "npm run checked:taro && VITE_APP_PROJECT_ID=jmapp node scripts/build-taro.mjs",
7171
"build:site": "npm run checked && vite build --config vite.config.site.mts",
7272
"build:site:jmapp": "npm run checked && VITE_APP_PROJECT_ID=jmapp vite build",
73-
"prebuild:taro:site": "SKIPDD=1 pnpm run update:taro:entry",
73+
"prebuild:taro:site": "pnpm run update:taro:entry",
7474
"build:taro:site": "npm run checked:taro && npm run generate:file:taro:pages && pnpm --dir ./packages/nutui-taro-demo build:h5",
7575
"build:jdtaro:site": "npm run checked:taro && npm run generate:file:taro:pages && JD=1 pnpm --dir ./packages/nutui-taro-demo build:h5",
7676
"build:taro:site:jmapp": "npm run checked:taro && VITE_APP_PROJECT_ID=jmapp npm run generate:file:taro:pages && pnpm --dir ./packages/nutui-taro-demo build:h5",
@@ -221,7 +221,7 @@
221221
"vinyl-fs": "^4.0.0",
222222
"vite": "^5.1.3",
223223
"vite-plugin-dts": "4.2.1",
224-
"vitest": "^3.0.0",
224+
"vitest": "^3.0.7",
225225
"vitest-canvas-mock": "^0.3.3",
226226
"yargs": "^17.7.2"
227227
},

packages/nutui-taro-demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"@dongdesign/inject-jd-platform-styles": "1.0.4",
6161
"@jdtaro/plugin-platform-jdhybrid": "0.2.1",
6262
"@jdtaro/taro-platform-jdharmony": "2.0.70",
63-
"@jdtaro/plugin-platform-jdharmony-cpp": "0.1.22",
63+
"@jdtaro/plugin-platform-jdharmony-cpp": "0.1.29-beta.0",
6464
"@nutui/replace-icons": "^1.0.0",
6565
"@nutui/touch-emulator": "^1.0.0",
6666
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",

packages/nutui-taro-demo/src/pages/index/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { SearchBar } from '@/packages/searchbar/searchbar.taro'
1616
import pkg from '@/packages/../config.json'
1717
import packageJson from '@/packages/../../package.json'
1818
import './index.scss'
19+
import { harmony } from '../../../../../src/utils/platform-taro'
1920

2021
const navs = pkg.nav
2122

@@ -81,7 +82,7 @@ const Index = () => {
8182
)}
8283
<View className="index-components-sublist">
8384
{nav.packages.map((com) =>
84-
com.show && com.taro && com.dd && (!search || new RegExp(search, 'ig').test(com.name.toLowerCase())) ? (
85+
com.show && com.taro && (harmony() ? com.dd : true) && (!search || new RegExp(search, 'ig').test(com.name.toLowerCase())) ? (
8586
<View
8687
key={com.name}
8788
className="index-components-sublist-item"

pnpm-lock.yaml

Lines changed: 252 additions & 129 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/build-taro.mjs

Lines changed: 30 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { access, mkdir, readFile, writeFile } from 'fs/promises'
1212
import { basename, dirname, extname, join, relative, resolve } from 'path'
1313
import j from 'jscodeshift'
1414
import { readFileSync } from 'fs'
15-
import { relativeFilePath } from './relative-path.mjs'
15+
import { relativePath } from './relative-path.mjs'
1616
import { codeShift } from './build-comments-to-dts.mjs'
1717
import { generate } from './build-theme-typings.mjs'
1818

@@ -59,7 +59,7 @@ const transform = (file, api, replace) => {
5959
return
6060
}
6161
const dir = join(__dirname, alias.replace('@/', '../src/'))
62-
path.node.source.value = relativeFilePath(file.path, dir)?.replace(
62+
path.node.source.value = relativePath(dir, file.path)?.replace(
6363
'.taro',
6464
'',
6565
)
@@ -232,32 +232,23 @@ async function buildUMD() {
232232

233233
async function buildAllCSS() {
234234
// 拷贝styles
235-
async function copyStyles() {
236-
await copy(
237-
resolve(__dirname, '../src/styles'),
238-
resolve(__dirname, `../${dist}/styles`),
239-
)
240-
235+
async function generateAllStyles() {
236+
const projectID = process.env.VITE_APP_PROJECT_ID
241237
const content = [
242-
`@import './styles/theme-default.scss';`,
243-
`@import './styles/variables.scss';`,
238+
`@import './styles/variables${projectID ? `-${projectID}` : ''}.scss';`,
244239
`@import './styles/mixins/index.scss';`,
245240
`@import './styles/animation/index.scss';`,
246241
]
247-
const projectID = process.env.VITE_APP_PROJECT_ID
248-
if (projectID) {
249-
content[1] = `@import '../variables-${projectID}.scss';`
250-
}
251242
const scssFiles = await glob([`${dist}/es/packages/**/*.scss`])
252243
scssFiles.forEach((file) => {
253244
content.push(
254-
`@import '${relativeFilePath(`/${dist}/style.scss`, '/' + file)}';`,
245+
`@import '${relativePath('/' + file, `/${dist}/style.scss`)}';`,
255246
)
256247
})
257248
dest(`${dist}/style.scss`, content.join('\n'))
258249
}
259250

260-
await copyStyles()
251+
await generateAllStyles()
261252
await vite.build({
262253
logLevel: 'error',
263254
resolve: {
@@ -277,6 +268,25 @@ async function buildAllCSS() {
277268
}
278269

279270
async function buildThemeCSS() {
271+
const files = await glob([`${dist}/styles/theme-*.scss`], {
272+
ignore: [`${dist}/types/src/**/*.taro.d.ts`],
273+
})
274+
const projectID = process.env.VITE_APP_PROJECT_ID
275+
const inputFiles = {}
276+
files.forEach(filePath => {
277+
const themeName = basename(filePath, 'scss').replace('theme-', '')
278+
if (!projectID) {
279+
inputFiles[themeName] = `./${filePath}`
280+
} else {
281+
if (themeName === projectID) {
282+
inputFiles['default'] = `./${filePath}`
283+
}
284+
if (themeName === `${projectID}-dark`) {
285+
inputFiles['dark'] = `./${filePath}`
286+
}
287+
}
288+
})
289+
280290
await vite.build({
281291
logLevel: 'error',
282292
resolve: {
@@ -285,16 +295,14 @@ async function buildThemeCSS() {
285295
build: {
286296
emptyOutDir: false,
287297
rollupOptions: {
298+
input: inputFiles,
288299
output: [
289300
{
290301
dir: `${dist}/styles/themes`,
291-
assetFileNames: 'default.css',
302+
assetFileNames: '[name].css',
292303
},
293304
],
294305
},
295-
lib: {
296-
entry: `./${dist}/styles/themes/default.scss`,
297-
},
298306
},
299307
})
300308
}
@@ -305,21 +313,6 @@ async function copyStyles() {
305313
resolve(__dirname, '../src/styles'),
306314
resolve(__dirname, `../${dist}/styles`),
307315
)
308-
309-
let content = [
310-
`@import '../theme-default.scss';`,
311-
`@import '../theme-dark.scss';`,
312-
`@import '../jd-font';`,
313-
]
314-
const projectID = process.env.VITE_APP_PROJECT_ID
315-
if (projectID) {
316-
content = [
317-
`@import '../theme-${projectID}.scss';`,
318-
`@import '../jd-font';`,
319-
]
320-
}
321-
322-
dest(`${dist}/styles/themes/default.scss`, content.join('\n'))
323316
}
324317

325318
// 构建样式
@@ -443,6 +436,8 @@ async function copyReleaseFiles() {
443436
const npmPublishDir = dist.replace('dist', '')
444437
await copy(join(__dirname, '../README.md'), join(`${npmPublishDir}/README.md`))
445438
await copy(join(__dirname, '../CHANGELOG.md'), join(`${npmPublishDir}/CHANGELOG.md`))
439+
await copy(join(__dirname, '../src/packages/lottie/animation'), join(`${npmPublishDir}/dist/es/packages/lottie/animation`))
440+
await copy(join(__dirname, '../src/packages/lottie/animation'), join(`${npmPublishDir}/dist/cjs/packages/lottie/animation`))
446441
await writeFile(join(__dirname, `../${npmPublishDir}/package.json`), generateReleasePackageJson())
447442
}
448443

@@ -484,8 +479,6 @@ console.time('Build Declaration')
484479
await buildDeclaration()
485480
console.timeEnd('Build Declaration')
486481

487-
// await exportProps()
488-
489482
await deleteAsync([
490483
`${dist}/es/packages/nutui.react.js`,
491484
`${dist}/es/packages/nutui.react.d.ts`,

scripts/build.mjs

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { access, mkdir, readFile, writeFile } from 'fs/promises'
1212
import { basename, dirname, extname, join, relative, resolve } from 'path'
1313
import j from 'jscodeshift'
1414
import { readFileSync } from 'fs'
15-
import { relativeFilePath } from './relative-path.mjs'
15+
import { relativePath } from './relative-path.mjs'
1616
import { codeShift } from './build-comments-to-dts.mjs'
1717
import { generate } from './build-theme-typings.mjs'
1818

@@ -120,7 +120,7 @@ async function buildDeclaration() {
120120
: ''
121121
if (!importAlias) return
122122
const dir = join(__dirname, importAlias.replace('@/', '../src/'))
123-
path.node.source.value = relativeFilePath(file.path, dir)
123+
path.node.source.value = relativePath(dir, file.path)
124124
})
125125
.toSource()
126126
}
@@ -177,35 +177,26 @@ async function buildUMD(p) {
177177
},
178178
})
179179
}
180-
180+
// 针对不同包构建全量的 style
181181
async function buildAllCSS() {
182182
// 拷贝styles
183-
async function copyStyles() {
184-
await copy(
185-
resolve(__dirname, '../src/styles'),
186-
resolve(__dirname, `../${dist}/styles`),
187-
)
188-
183+
async function generateAllStyles() {
184+
const projectID = process.env.VITE_APP_PROJECT_ID
189185
const content = [
190-
`@import './styles/theme-default.scss';`,
191-
`@import './styles/variables.scss';`,
186+
`@import './styles/variables${projectID ? `-${projectID}` : ''}.scss';`,
192187
`@import './styles/mixins/index.scss';`,
193188
`@import './styles/animation/index.scss';`,
194189
]
195-
const projectID = process.env.VITE_APP_PROJECT_ID
196-
if (projectID) {
197-
content[1] = `@import '../variables-${projectID}.scss';`
198-
}
199190
const scssFiles = await glob([`${dist}/es/packages/**/*.scss`])
200191
scssFiles.forEach((file) => {
201192
content.push(
202-
`@import '${relativeFilePath(`/${dist}/style.scss`, '/' + file)}';`,
193+
`@import '${relativePath('/' + file, `/${dist}/style.scss`)}';`,
203194
)
204195
})
205196
dest(`${dist}/style.scss`, content.join('\n'))
206197
}
207198

208-
await copyStyles()
199+
await generateAllStyles()
209200
await vite.build({
210201
logLevel: 'error',
211202
resolve: {
@@ -225,6 +216,30 @@ async function buildAllCSS() {
225216
}
226217

227218
async function buildThemeCSS() {
219+
const files = await glob([`${dist}/styles/theme-*.scss`], {
220+
ignore: [`${dist}/types/src/**/*.taro.d.ts`],
221+
})
222+
const projectID = process.env.VITE_APP_PROJECT_ID
223+
const inputFiles = {}
224+
// nuitui 官方包包含全部主题文件,包括:
225+
// default.css 默认明亮主题
226+
// dark.css 默认暗黑主题
227+
// jmapp.css、jrkf.css 主题
228+
// 例如:jmapp 包只包含 jmapp 的主题文件,且是默认主题文件。
229+
files.forEach(filePath => {
230+
const themeName = basename(filePath, 'scss').replace('theme-', '')
231+
if (!projectID) {
232+
inputFiles[themeName] = `./${filePath}`
233+
} else {
234+
if (themeName === projectID) {
235+
inputFiles['default'] = `./${filePath}`
236+
}
237+
if (themeName === `${projectID}-dark`) {
238+
inputFiles['dark'] = `./${filePath}`
239+
}
240+
}
241+
})
242+
228243
await vite.build({
229244
logLevel: 'error',
230245
resolve: {
@@ -233,41 +248,23 @@ async function buildThemeCSS() {
233248
build: {
234249
emptyOutDir: false,
235250
rollupOptions: {
251+
input: inputFiles,
236252
output: [
237253
{
238254
dir: `${dist}/styles/themes`,
239-
assetFileNames: 'default.css',
255+
assetFileNames: '[name].css',
240256
},
241257
],
242258
},
243-
lib: {
244-
entry: `./${dist}/styles/themes/default.scss`,
245-
},
246259
},
247260
})
248261
}
249262

250-
// 拷贝styles
251263
async function copyStyles() {
252264
await copy(
253265
resolve(__dirname, '../src/styles'),
254266
resolve(__dirname, `../${dist}/styles`),
255267
)
256-
257-
let content = [
258-
`@import '../theme-default.scss';`,
259-
`@import '../theme-dark.scss';`,
260-
`@import '../jd-font';`,
261-
]
262-
const projectID = process.env.VITE_APP_PROJECT_ID
263-
if (projectID) {
264-
content = [
265-
`@import '../theme-${projectID}.scss';`,
266-
`@import '../jd-font';`,
267-
]
268-
}
269-
270-
dest(`${dist}/styles/themes/default.scss`, content.join('\n'))
271268
}
272269

273270
// 构建样式
@@ -384,6 +381,8 @@ async function copyReleaseFiles() {
384381
const npmPublishDir = dist.replace('dist', '')
385382
await copy(join(__dirname, '../README.md'), join(`${npmPublishDir}/README.md`))
386383
await copy(join(__dirname, '../CHANGELOG.md'), join(`${npmPublishDir}/CHANGELOG.md`))
384+
await copy(join(__dirname, '../src/packages/lottie/animation'), join(`${npmPublishDir}/dist/es/packages/lottie/animation`))
385+
await copy(join(__dirname, '../src/packages/lottie/animation'), join(`${npmPublishDir}/dist/cjs/packages/lottie/animation`))
387386
await writeFile(join(__dirname, `../${npmPublishDir}/package.json`), generateReleasePackageJson())
388387
}
389388

@@ -438,4 +437,4 @@ console.timeEnd('Build JSDoc')
438437

439438
console.time('Copy package.json readme.md')
440439
await copyReleaseFiles()
441-
console.timeEnd('Copy package.json readme.md')
440+
console.timeEnd('Copy package.json readme.md')

0 commit comments

Comments
 (0)