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

Taro create 无法创建component模板,package.json 中有 templateInfo 无法使用创建页面模板 #4106

Closed
umaim opened this issue Aug 8, 2019 · 14 comments
Assignees

Comments

@umaim
Copy link
Contributor

umaim commented Aug 8, 2019

问题描述
Taro create 无法创建component模板,package.json 中有 templateInfo 无法使用创建页面模板

复现步骤
package.json

{
  
  "dependencies": {
    "@tarojs/async-await": "1.3.12",
    "@tarojs/components": "1.3.12",
    "@tarojs/redux": "1.3.12",
    "@tarojs/redux-h5": "1.3.12",
    "@tarojs/router": "1.3.12",
    "@tarojs/taro": "1.3.12",
    "@tarojs/taro-alipay": "1.3.12",
    "@tarojs/taro-h5": "1.3.12",
    "@tarojs/taro-qq": "1.3.12",
    "@tarojs/taro-quickapp": "1.3.12",
    "@tarojs/taro-swan": "1.3.12",
    "@tarojs/taro-tt": "1.3.12",
    "@tarojs/taro-weapp": "1.3.12",
    "nervjs": "^1.4.3",
    "nerv-devtools": "^1.4.3",
    "redux": "^4.0.4",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "taro-ui": "^2.2.1"
  },
  "devDependencies": {
    "@tarojs/cli": "1.3.12",
    "@types/react": "^16.4.8",
    "@types/webpack-env": "^1.13.6",
    "@tarojs/plugin-babel": "1.3.12",
    "@tarojs/plugin-csso": "1.3.12",
    "@tarojs/plugin-sass": "1.3.12",
    "@tarojs/plugin-uglifyjs": "1.3.12",
    "@tarojs/webpack-runner": "1.3.12",
    
  },
  "templateInfo": {
    "name": "redux",
    "typescript": true,
    "css": "sass"
  }
}

【taro-cli 是本地安装,而非全局安装】
如果 package.josn 包含如上信息,使用 npx taro create page haha 无法创建页面。控制台提示:

✔ 创建页面 haha 成功!
Done in 1.53s.

然而 pages 目录下并没有创建相应页面

删掉 templateInfo 就可以创建一个 jsx + css 的模板,而不是 tsx + sass

期望行为
使用 taro create 指令,正确地创建 tsx + sass 的页面模板。
也能指定 component 类型创建组件模板。

报错信息

系统信息

  • 操作系统: Windows 10
  • Taro 版本 1.3.12
  • Node.js 版本 12
@taro-bot
Copy link

taro-bot bot commented Aug 8, 2019

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@taro-bot
Copy link

taro-bot bot commented Aug 8, 2019

CC @luckyadam

@taro-bot
Copy link

taro-bot bot commented Aug 8, 2019

CC @Chen-jj

@luckyadam luckyadam assigned Chen-jj and unassigned luckyadam Aug 8, 2019
@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 9, 2019

#4097

@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 9, 2019

same issue

@Chen-jj Chen-jj closed this as completed Aug 9, 2019
@umaim
Copy link
Contributor Author

umaim commented Aug 9, 2019

@Chen-jj 你好,

这并不是同样的 issue,或者说只有部分是相同的。

我很用心地在写 issue,希望你能一字一句地看完。

@Chen-jj Chen-jj reopened this Aug 9, 2019
@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 9, 2019

身边没有电脑,下周跟进一下

@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 12, 2019

@xPixv 复现不了,使用全局 CLI 再试试

@umaim
Copy link
Contributor Author

umaim commented Aug 12, 2019

@Chen-jj 全局安装也一样有问题。(Taro 1.3.13)

只要 package.json 里有如下的模板信息

{
  "templateInfo": {
    "name": "redux",
    "typescript": true,
    "css": "sass"
  }
}

创建页面就会出错

image

上图,第一次,没有 templateInfo,创建了 jsx + css 的模板

第二次添加了 templateInfo 什么都没创建(虽然提示成功,其实并没有)

希望 cli 能根据 templateInfo 创建合适的模板。比如 templateInfo 指定用 typescript + sass 开发的话,就创建 tsx + scss。

复现步骤:
0、全局安装 taro cli
1、Clone https://github.com/NervJS/taro-redux-sample
2、taro update project
3、yarn install
4、taro create page XXX <- 创建了 jsx + css,即图中的1
5、删掉刚创建的页面文件,添加上面的 templateInfo 信息
6、再次运行 4 <- 有问题,即图中的2

(按理没有 2、3 步,不安装依赖,只利用脚手架也应该也可以创建模板

@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 13, 2019

@xPixv 原因是你选 redux 模板,但并没有下载过 redux 模板。

@umaim
Copy link
Contributor Author

umaim commented Aug 13, 2019

@Chen-jj 原来是这样子呀 0.0

这个处理逻辑也有点问题吧:
1、并不是所有项目都要从 taro init 创建模板开始,没有模板,也算正常吧(如果 create 时没有模板,去下载模板?)
2、创建失败也提示的成功

@Chen-jj
Copy link
Contributor

Chen-jj commented Aug 13, 2019

@xPixv 我觉得没有问题,创建页面肯定用回当前模板,templateInfo 也是自动加的。像你这样手动加 templateInfo 的操作很少见

@umaim
Copy link
Contributor Author

umaim commented Aug 13, 2019

@Chen-jj
如果多人合作开发呢?创建项目的人,在创建项目时候有模板,templateInfo 也创建了。
协作的人,install 完,并没有下载模板,自然就无法创建了鸭 0.0

一个建议:项目的模板用 npm 包管理,代替 init 的时候用 git-download 下载模板,就应该能保证 install 项目后模板依赖存在了。(同时也能克服 GitHub 的网络问题)
还可以规范模板包的命名,让社区也能贡献不同的模板。而不是在 init 时候只能选择官方提供的模板

希望 Taro 团队可以谨慎评估,考虑一下

@archywillhe
Copy link

??????

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants