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

nei build在windows下生成jtr.js中使用相对路径错误的问题 #27

Closed
klvoek opened this issue Jun 12, 2016 · 2 comments
Closed

Comments

@klvoek
Copy link

klvoek commented Jun 12, 2016

nei build 指定--webroot --viewroot 为nei -p 不同盘符下的路径时,生成的jtr.js中 webroot、viewroot、mockTpl、mockApi 使用相对路径寻址错误。
例如:

  • 工作目录为:C:\Users\hzwenjinlu
  • 执行的nei build命令为:nei instal 11934 -t webapp --webRoot "D:\neteasecode\nyx\nyx-web\src\mai
    n\webapp" --viewRoot "D:\neteasecode\nyx\nyx-web\src\main\webapp\WEB-INF\ftl\h5"

生成后的jtr.json文件中目录解析错误如下:

/* 根目录 */
webRoot: path.join(__dirname, 'D:/neteasecode/nyx/nyx-web/src/main/webapp/'),
/* 视图目录 */
viewRoot: path.join(__dirname, 'D:/neteasecode/nyx/nyx-web/src/main/webapp/WEB-INF/ftl/h5/'),
/* 同步模块mock数据路径 */
mockTpl: path.join(__dirname, '/D:/neteasecode/nyx/nyx-web/src/main/webapp/WEB-INF/ftl/h5/mock/'),
/* 异步接口mock数据路径 */
mockApi: path.join(__dirname, '/D:/neteasecode/nyx/nyx-web/src/main/webapp/src/mock/')

使用nei server命令启动测试服务器,访问页面地址报错如下:

访问了 ----> GET /product/list
Failed to lookup view "./booking/productlist.ftl" in views directory "C:\Users\h
zwenjinlu\nei.11934\D:\neteasecode\nyx\nyx-web\src\main\webapp\WEB-INF\ftl\h5"

若切换工作目录,执行相同命令后

  • 工作目录为:D:\nei
  • 执行的nei build命令为:nei instal 11934 -t webapp --webRoot "D:\neteasecode\nyx\nyx-web\src\mai
    n\webapp" --viewRoot "D:\neteasecode\nyx\nyx-web\src\main\webapp\WEB-INF\ftl\h5"

生成后的jtr.json文件中目录解析如下:

/* 根目录 */
webRoot: path.join(__dirname, '../../neteasecode/nyx/nyx-web/src/main/webapp/'),
/* 视图目录 */
viewRoot: path.join(__dirname, '../../neteasecode/nyx/nyx-web/src/main/webapp/WEB-INF/ftl/h5/'),
/* 同步模块mock数据路径 */
mockTpl: path.join(__dirname, '/../../neteasecode/nyx/nyx-web/src/main/webapp/WEB-INF/ftl/h5/mock/'),
/* 异步接口mock数据路径 */
mockApi: path.join(__dirname, '/../../neteasecode/nyx/nyx-web/src/main/webapp/src/mock/'),

再次命令 nei server 启动访问同样的页面地址打开正常。

检查代码lib/nei/webapp.js 中方法buildServerConfig ,计算webRoot 等目录值时取的是相对项目目录的相对路径。所以,建议:

  1. 要么修改代码兼容windows下指定不同盘符目录的情况
  2. 要么在文档中增加说明windows下项目目录和webroot、viewroot、mockTpl、mockApi必须为同盘符下的目录
@huntbao
Copy link
Collaborator

huntbao commented Jun 13, 2016

这块确实没测到,我看下先~

@huntbao
Copy link
Collaborator

huntbao commented Jun 14, 2016

@klvoek fixed in v0.4.7

@huntbao huntbao closed this as completed Jun 14, 2016
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

2 participants