RequireJS Optimizer抛出ReferenceError:未定义文本

Khi*_*ior 1 requirejs r.js requirejs-text

我一直在使用r.js来尝试缩小一个相当大的项目,我遇到了文本插件的问题.我正在使用node.js和一个如下构建文件:

构建文件

({

    name: '../main',

    baseUrl: '../../js/app',

    appDir: "./app",

    dir: 'build',

    paths: {

        jquery: '../lib/jquery/jquery-1.10.2.min',
        underscore: '../lib/underscore/underscore-min',
        backbone: '../lib/backbone/backbone-min',
        text: '../lib/require/text',
        picker: '../lib/pickadate/picker',
        pickerDate: '../lib/pickadate/picker.date',
        pickerLegacy: '../lib/pickadate/legacy'
    },

    mainConfigFile : '../js/main.js'

})
Run Code Online (Sandbox Code Playgroud)

主配置文件

requirejs.config({

    baseUrl: 'js/app',

    paths: {

        jquery: '../lib/jquery/jquery-1.10.2.min',
        underscore: '../lib/underscore/underscore-min',
        backbone: '../lib/backbone/backbone-min',
        text: '../lib/require/text',
        picker: '../lib/pickadate/picker',
        pickerDate: '../lib/pickadate/picker.date',
        pickerLegacy: '../lib/pickadate/legacy'
    },

    shim: {
        picker: ['jquery', 'pickerLegacy'],
        pickerDate: {
            deps: ['jquery', 'picker'],
            exports: 'DatePicker'
        },
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        underscore: {
            exports: '_'
        },
        text : {
            exports : 'text'
        }
    }

});
Run Code Online (Sandbox Code Playgroud)

以上参考文献都经过验证是正确的.每当我尝试编译它时,我在控制台中得到以下输出:

node r.js -o app.build.js

Tracing dependencies for: ../main
ReferenceError: text is not defined
In module tree:
    ../main
      app
        router
          views/pages/home
            views/panel/allStoresPanel
              text

Error: ReferenceError: text is not defined
In module tree:
    ../main
      app
        router
          views/pages/home
            views/panel/allStoresPanel
              text

    at eval (eval at <anonymous> (C:\code\Web\DixonsDashboard\deploy\_compiler\r.js:23699:64), <anonymous>:1:1)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它发现文本未定义.它的路径绝对是正确的 - 该网站的工作方式就像当前扩展格式的魅力.我已经尝试了r.js可用的所有选项,但它们似乎没有任何区别.

如果我删除文件,我会收到"没有这样的文件或目录"错误,所以它看起来好像找到了文件.

任何人都能指出我在这里缺少的东西吗?

kry*_*ger 5

您只配置兼容AMD的shim插件."text"插件已经与AMD兼容,因此通过该机制运行它实际上会破坏它.shim


我刚刚使用您的代码的简化版本进行了测试:该shim部分中的文本显示"ReferenceError:text is not defined",删除它使构建工作正常.