requirejs 与定义/要求函数相融合

requirejs confilcts with define/require functions

本文关键字:函数 融合 定义 requirejs      更新时间:2023-09-26

长话短说 - 我在尝试将 requireJS 集成到旧项目中时遇到问题,这些代码具有与 requireJS 冲突的全局定义函数的定义。当我加载这两个脚本时,业力/茉莉花测试中出现问题。

业力.js

files: [
  <lib that has define global function insight>
  ...
  webappJs + '/vendor/require.js',
  'src/test/js/test-main.js',
  ... 
]

测试主.js

var allTestFiles = [];
var TEST_REGEXP = /.*ng.*test'.js/i;
Object.keys(window.__karma__.files).forEach(function(file) {
    if (TEST_REGEXP.test(file)) {
        // Normalize paths to RequireJS module names.
        allTestFiles.push(file);
    }
});
var config = {
    appDir : '',
    baseUrl : '/base/src/main/webapp',
    dir: "lib",
    deps: allTestFiles,
    callback: window.__karma__.start,
    paths : {
        // Configure alias to full paths
        'angular' : 'lib/angular.min',
        'angularMock' : '/base/src/test/lib/angular-mocks',
        'requireLib': 'lib/require'
    },
    namespace: "appRequire",
    shim : {
        'angular' : {
            deps : [],
            exports : 'angular'
        },
        'angularMock' : {
            deps : ['angular']
        }
    },
    modules: [
        {
            name: "appRequire",
            include: ["requireLib"],
            create: true
        }
    ]
};
require.config (config);

所以据说现在我必须包含 appRequire.js 文件???但这是我不明白模块将如何创建的事情,谁将创建它?我不应该将require.js包含在文件列表中

该文件对此没有说太多...它只是说在那之后,我将能够使用定义/要求函数作为appRequire.define 和appRequire.require...但这是什么机制呢?我在这里错过了什么?原因当前requirejs仍在抱怨使用"旧"定义函数的代码。

提前感谢所有可以对此有所了解的人!

手动解决了main中的冲突.js

if( typeof define !== 'undefined' ) {
    myApp = {
       define : define
    };
    define = void 0;
}