Closed creasy2010 closed 5 years ago
问题描述 转换为rn时,importk路径如果包含"pages关键字"则信息丢失..
复现步骤 [或者可以直接贴源代码,能贴文字就不要截图]
源代码:
import counter from '@/pages/counter'; export default { counter, } ;
转换后的代码
import Taro from '@tarojs/taro-rn'; export default { counter };
期望行为 不过滤import counter from '@/pages/counter';
报错信息 见上面生成代码部分 [这里请贴上你的完整报错截图或文字]
系统信息
Taro v1.2 及以上版本已添加 taro info 命令,方便大家查看系统及依赖信息,运行该命令后将结果贴下面即可。 Taro v1.3.0-beta.3
taro info
Taro CLI 1.3.0-beta.3 environment info: System: OS: macOS 10.14.5 Shell: 5.3 - /bin/zsh Binaries: Node: 10.15.1 - ~/.tnvm/versions/node/v10.15.1/bin/node npm: 6.9.0 - ~/.tnvm/versions/node/v10.15.1/bin/npm npmPackages: @tarojs/async-await: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/cli: ^1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/components: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-babel: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-csso: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-less: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-uglifyjs: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/redux: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/redux-h5: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/router: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-alipay: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-h5: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-swan: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-weapp: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/webpack-runner: 1.3.0-beta.3 => 1.3.0-beta.3 eslint-config-taro: 1.3.0-beta.3 => 1.3.0-beta.3 eslint-plugin-taro: 1.3.0-beta.3 => 1.3.0-beta.3 nervjs: ^1.4.0-beta.3 => 1.4.0-beta.4
补充信息 在用babel修改ast时 , 有一个判断导致过滤掉包含关键字pages的import 不理解 这个是什么含义 https://github.com/NervJS/taro/blob/master/packages/taro-cli/src/rn/transformJS.ts#L261
[根据你的调查研究,出现这个问题的原因可能在哪里?] 去掉判断 if (pathArr.indexOf('pages') >= 0)
// 引入的包为 npm 包 if (!Util.isNpmPkg(value)) { // import 样式处理 if (REG_STYLE.test(valueExtname)) { const stylePath = path.resolve(path.dirname(filePath), value) if (styleFiles.indexOf(stylePath) < 0) { //样式条件文件编译 .rn.scss const realStylePath = Util.resolveStylePath(stylePath) styleFiles.push(realStylePath) } } if (value.indexOf('.') === 0) { const pathArr = value.split('/') //去掉此判断 // if (pathArr.indexOf('pages') >= 0) { // astPath.remove() // } else //去掉此判断 if (REG_SCRIPTS.test(value) || path.extname(value) === '') { const absolutePath = path.resolve(filePath, '..', value) const dirname = path.dirname(absolutePath) const extname = path.extname(absolutePath) const realFilePath = Util.resolveScriptPath(path.join(dirname, path.basename(absolutePath, extname))) const removeExtPath = realFilePath.replace(path.extname(realFilePath), '') node.source = t.stringLiteral(Util.promoteRelativePath(path.relative(filePath, removeExtPath)).replace(/\\/g, '/')) } } return }
欢迎提交 Issue~
如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏
如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。
Good luck and happy coding~
CC @Pines-Cheng
https://github.com/NervJS/taro/pull/3147
问题描述 转换为rn时,importk路径如果包含"pages关键字"则信息丢失..
复现步骤 [或者可以直接贴源代码,能贴文字就不要截图]
源代码:
转换后的代码
期望行为 不过滤import counter from '@/pages/counter';
报错信息 见上面生成代码部分 [这里请贴上你的完整报错截图或文字]
系统信息
Taro CLI 1.3.0-beta.3 environment info: System: OS: macOS 10.14.5 Shell: 5.3 - /bin/zsh Binaries: Node: 10.15.1 - ~/.tnvm/versions/node/v10.15.1/bin/node npm: 6.9.0 - ~/.tnvm/versions/node/v10.15.1/bin/npm npmPackages: @tarojs/async-await: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/cli: ^1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/components: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-babel: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-csso: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-less: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/plugin-uglifyjs: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/redux: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/redux-h5: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/router: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-alipay: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-h5: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-swan: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/taro-weapp: 1.3.0-beta.3 => 1.3.0-beta.3 @tarojs/webpack-runner: 1.3.0-beta.3 => 1.3.0-beta.3 eslint-config-taro: 1.3.0-beta.3 => 1.3.0-beta.3 eslint-plugin-taro: 1.3.0-beta.3 => 1.3.0-beta.3 nervjs: ^1.4.0-beta.3 => 1.4.0-beta.4
补充信息 在用babel修改ast时 , 有一个判断导致过滤掉包含关键字pages的import 不理解 这个是什么含义 https://github.com/NervJS/taro/blob/master/packages/taro-cli/src/rn/transformJS.ts#L261
[根据你的调查研究,出现这个问题的原因可能在哪里?] 去掉判断 if (pathArr.indexOf('pages') >= 0)