Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
requirejs优化器可以使用相对路径吗?_Requirejs_Requirejs Optimizer - Fatal编程技术网

requirejs优化器可以使用相对路径吗?

requirejs优化器可以使用相对路径吗?,requirejs,requirejs-optimizer,Requirejs,Requirejs Optimizer,(很抱歉,这是关于r.js的,它是基于节点的) 我无法让requirejs优化器与相对路径一起正常工作 我的web应用程序有以下目录 应用程序 index.html-包括requirejs、main.js,然后是require(['plugins'))(标准多页设置) 剧本 main.js-bootstraps requirejs,将baseUrl设置为/scripts js-引用并公开应用程序插件中的模块。通过。/app plugins/a.js 应用程序插件 a、 js 在未

(很抱歉,这是关于r.js的,它是基于节点的)

我无法让requirejs优化器与相对路径一起正常工作

我的web应用程序有以下目录

  • 应用程序
    • index.html-包括requirejs、main.js,然后是
      require(['plugins'))
      (标准多页设置)
    • 剧本
      • main.js-bootstraps requirejs,将baseUrl设置为/scripts
      • js-引用并公开应用程序插件中的模块。通过
        。/app plugins/a.js
    • 应用程序插件
      • a、 js
在未优化的版本中,一切正常(在应用程序上运行Web服务器,打开控制台并导航到索引页)

但是,优化给了我一个错误,因为plugins.js中有
。/
。要查看此cd,请转到优化目录并运行
节点。\node\u modules\requirejs\bin\r.js-o。\build.json
。错误将被忽略

W:\temp\requireop\optimization [master]> .\Build-RequireJs.ps1

Tracing dependencies for: main

Tracing dependencies for: plugins
Error: ENOENT, no such file or directory 'W:\temp\requireop\build\app-plugins\a.js'
In module tree:
    plugins

Error: Error: ENOENT, no such file or directory 'W:\temp\requireop\build\app-plugins\a.js'
In module tree:
    plugins

    at Object.fs.openSync (fs.js:427:18)

我做了以下更改,效果很好:

  • main.js

    baseUrl: 'scripts'
    
    在一般情况下,路径区分大小写;最好不要包含前导斜杠

  • optimization/build.json
    变成:

    {
        appDir: '../app',
        baseUrl: 'scripts',
        dir: '../build',
        modules: [ // the same
        ]
    }
    
    您可以找到详细信息,但有一些解释:

  • appDir
    让r.js知道源在哪里。我相信这也让r.js知道了如何处理相对路径——尽管不是很确定
  • 然后,
    baseUrl
    变为相对于
    appDir
  • dir
    是输出的地方,它还会复制
    appDir
    中的文件
此过程覆盖
/build/
中的文件