@@ -13,7 +13,7 @@ import {isStaticRes, RNWXLIBMaps} from '../util/util'
13
13
import isReactCompFile from '../util/isReactCompFile'
14
14
import { RNCOMPSET } from "../constants" ;
15
15
const npath = require ( 'path' )
16
- const colors = require ( 'colors' ) ;
16
+
17
17
18
18
/**
19
19
* 1. 移除unused的import/require
@@ -113,7 +113,7 @@ export default function (ast, info) {
113
113
}
114
114
} )
115
115
} else {
116
- console . log ( colors . error ( `需要使用解构的方式引入react-native组件, error file:, ${ filepath } ` ) )
116
+ console . log ( ` ${ filepath . replace ( global . execArgs . OUT_DIR , '' ) } : 需要使用解构的方式引入react-native组件!` . error )
117
117
}
118
118
return
119
119
}
@@ -220,39 +220,7 @@ function getRealSource(source, filepath) {
220
220
|| source . startsWith ( './' )
221
221
|| source . startsWith ( '../' )
222
222
) {
223
- const originalPath = npath
224
- . resolve ( npath . dirname ( filepath ) , source )
225
- . replace ( global . execArgs . OUT_DIR , global . execArgs . INPUT_DIR )
226
- . replace ( / \\ / g, '/' )
227
-
228
- let finalSource = source
229
- let isReactComp
230
- if ( fse . existsSync ( originalPath + '.wx.js' ) ) {
231
- isReactComp = isReactCompFile ( originalPath + '.wx.js' )
232
- } else if ( fse . existsSync ( originalPath + '.jsx' ) ) {
233
- isReactComp = isReactCompFile ( originalPath + '.jsx' )
234
- } else if ( fse . existsSync ( originalPath + '.js' ) ) {
235
- isReactComp = isReactCompFile ( originalPath + '.js' )
236
- } else {
237
- // 导入目录
238
- const fileDicPath = npath . resolve ( originalPath , 'index' )
239
- finalSource = source + '/index'
240
-
241
- if ( fse . existsSync ( fileDicPath + '.wx.js' ) ) {
242
- isReactComp = isReactCompFile ( fileDicPath + '.wx.js' )
243
- } else if ( fse . existsSync ( fileDicPath + '.jsx' ) ) {
244
- isReactComp = isReactCompFile ( fileDicPath + '.jsx' )
245
- } else if ( fse . existsSync ( fileDicPath + '.js' ) ) {
246
- isReactComp = isReactCompFile ( fileDicPath + '.js' )
247
- }
248
-
249
- }
250
-
251
- if ( isReactComp ) {
252
- finalSource = finalSource + '.comp'
253
- }
254
-
255
- return finalSource
223
+ return getFinalSource ( filepath , source )
256
224
} else {
257
225
return source
258
226
}
@@ -330,3 +298,65 @@ function insertIntoRequireBody(nodepath, newnode) {
330
298
const ppp = nodepath . parentPath . parentPath . parentPath
331
299
ppp . insertAfter ( newnode )
332
300
}
301
+
302
+ /**
303
+ * 获取 最终的导入路径,如果导入的是目录,需要补全index
304
+ * 如果导入的是组件,需要添加.comp
305
+ * @param filepath
306
+ * @param source
307
+ */
308
+ function getFinalSource ( filepath , source ) {
309
+ const originalPath = npath
310
+ . resolve ( npath . dirname ( filepath ) , source )
311
+ . replace ( global . execArgs . OUT_DIR , global . execArgs . INPUT_DIR )
312
+ . replace ( / \\ / g, '/' )
313
+
314
+ const extname = npath . extname ( filepath )
315
+
316
+ const indexFiles = npath . resolve ( originalPath , 'index' )
317
+
318
+ let fileSufix = '.js'
319
+ if ( extname === '.ts' || extname === '.tsx' ) {
320
+ fileSufix = '.ts'
321
+ }
322
+
323
+ const allFiles = [
324
+ `${ originalPath } .wx${ fileSufix } ` ,
325
+ `${ originalPath } ${ fileSufix } ` ,
326
+ `${ originalPath } .wx${ fileSufix } x` ,
327
+ `${ originalPath } ${ fileSufix } x`
328
+ ]
329
+
330
+
331
+
332
+ for ( let i = 0 ; i < allFiles . length ; i ++ ) {
333
+ const filePath = allFiles [ i ]
334
+
335
+ if ( fse . existsSync ( filePath ) ) {
336
+ if ( isReactCompFile ( filePath ) ) {
337
+ return `${ source } .comp`
338
+ } else {
339
+ return source
340
+ }
341
+ }
342
+ }
343
+
344
+ const allIndexFiles = [
345
+ `${ indexFiles } .wx${ fileSufix } ` ,
346
+ `${ indexFiles } ${ fileSufix } ` ,
347
+ `${ indexFiles } .wx${ fileSufix } x` ,
348
+ `${ indexFiles } ${ fileSufix } x`
349
+ ]
350
+
351
+ for ( let i = 0 ; i < allIndexFiles . length ; i ++ ) {
352
+ const filePath = allIndexFiles [ i ]
353
+
354
+ if ( fse . existsSync ( filePath ) ) {
355
+ if ( isReactCompFile ( filePath ) ) {
356
+ return `${ source } /index.comp`
357
+ } else {
358
+ return `${ source } /index`
359
+ }
360
+ }
361
+ }
362
+ }
0 commit comments