下面这种js结构比较清晰,但是用requirejs管理起来就老费劲了
问题1:
app1.js中设置baseUrl为root目录,在prj1.html中使用require([‘libs/js/jquery’]) 尼玛居然定位不到jquery.js而是定位到了root/prj1
/libs/js/jquery.js
为何在app1.js中设置的baseUrl无用呢?【但是在app1.js中使用require([‘libs/js/xxx’])是可以正确定位到root/libs/js/xxx.js的】。
为何会出这种神奇的问题呢? app1.js中定义的baseUrl只在app1.js中有效,在prj1.html中就失效了么?
问题2:
为何通过require函数,同一个js文件可以被两次引入? 一次以绝对路径,一次以相对路径,但是实际指向的是同一个文件:(
root prj1/ js/ app1.js prj1.html (里面引用了app1.js) prj2/ js/ app2.js libs/ js/ jquery.js
把问题补充了一下;)
nodejs并没有提供html文件定位路径的功能,html在本质上是字符串,字符串怎么可能有逻辑的功能呢。
“在prj1.html中使用require([‘libs/js/jquery’]) 尼玛居然定位不到jquery.js而是定位到了root/prj1/libs/js/jquery.js” 这个得问你的模板引擎作者了。
模板占位符替换的时候,会有一些类似c语言预编译的手法,插入一些字符。
这个是浏览器项目,在浏览器中跑的,还没用到nodejs。。。