RequireJS如何从jam文件包部分指定垫片依赖项

RequireJS如何从jam文件包部分指定垫片依赖项,requirejs,amd,jamjs,Requirejs,Amd,Jamjs,我在一个有主干模板的项目中工作,该模板使用RequireJS加载模块,使用JamJS管理模块。 我的requireconfig.js文件如下: require.config({ deps: ["../vendor/jam/require.config", "main"], paths: { "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage" }, shim

我在一个有主干模板的项目中工作,该模板使用RequireJS加载模块,使用JamJS管理模块。 我的require
config.js
文件如下:

require.config({
  deps: ["../vendor/jam/require.config", "main"],
  paths: {
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage"
  },
  shim: {
    "backbone.localStorage": {
        deps: ['backbone']
    }
  }
});
正如您可以从jam配置文件
jam/require.config.js
中看到的RequireJS加载配置,它指定了主干、jquery和下划线。接下来是文件的一部分:

    "packages": [
        {
            "name": "backbone.layoutmanager",
            "location": "../vendor/jam/backbone.layoutmanager",
            "main": "backbone.layoutmanager.js"
        }
        {
            "name": "backbone",
            "location": "../vendor/jam/backbone",
            "main": "backbone.js"
        }
    ],
    "version": "0.2.11",
    "shim": {
        "backbone.layoutmanager": {
            "deps": [
                "jquery",
                "backbone",
                "lodash"
            ],
            "exports": "Backbone.LayoutManager"
        }
        "backbone": {
            "deps": [
                "jquery",
                "lodash"
            ],
            "exports": "Backbone"
        }
    }
};
我想要的是在我的
config.js
中指定backbone.localStorare库取决于包部分中定义的主干。 另外,如果我按以下方式指定主干路径,则它会找到主干库,但会发现一条错误消息,说明未加载下划线:

require.config({
  deps: ["../vendor/jam/require.config", "main"],
  paths: {
    "backbone": "../vendor/jam/backbone/backbone",
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage"
  },
  shim: {
    "backbone.localStorage": {
        deps: ['backbone']
    }
  }
});
我可以使用jamjs添加backbone.localStorage库,但可用软件包的版本很旧,所以我更喜欢手动下载最后一个,并手动包含

任何想法或帮助都将不胜感激。

主干网需要:

因此,我认为最好调整
jam/require.config.js

编辑:

接下来是问题中的
packages
部分,这是
jam/require.config.js
的一部分?位置是否相对于jam/require.config.js的位置

您是否尝试在自己的config.js中添加
部分:

"packages": ["backbone", "backbone.layoutmanager"]
主干网需求:

因此,我认为最好调整
jam/require.config.js

编辑:

接下来是问题中的
packages
部分,这是
jam/require.config.js
的一部分?位置是否相对于jam/require.config.js的位置

您是否尝试在自己的config.js中添加
部分:

"packages": ["backbone", "backbone.layoutmanager"]

多亏了阿斯哥特,我才能解决这个问题。我把文件放在下面

使用此配置,我可以将垫片库放在我的
config.js
文件中,该文件取决于jam在
require.config.js
文件中管理的包

config.js

// Set the require.js configuration for your application.
require.config({

  // Initialize the application with the main application file and the JamJS
  // generated configuration file.
  deps: ["../vendor/jam/require.config", "main"],

  // Packeges defined at jam/require.config.js required by shim libraries
  packages: [
    {"name" : "backbone"}, 
    {"name" : "jquery"}
  ],

  paths: {
    // Put paths here.
    "codemirror" : "../vendor/codemirror-3.0/lib/codemirror",
    "codemirror-markdown": "../vendor/codemirror-3.0/mode/markdown/markdown",
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage",
    "bootstrap" : "../vendor/bootstrap-2.2.2/js/bootstrap"
  },

  shim: {
    // Put shims here.
    "codemirror-markdown": {
      deps: ["codemirror"]
    },
    "backbone.localStorage": {
      deps: ['backbone']
    },
    "bootstrap": {
      deps: ['jquery']
    }
  }

});
var jam = {
    "packages": [
        {
            "name": "jquery",
            "location": "../vendor/jam/jquery",
            "main": "jquery.js"
        },
        {
            "name": "backbone.layoutmanager",
            "location": "../vendor/jam/backbone.layoutmanager",
            "main": "backbone.layoutmanager.js"
        },
        {
            "name": "underscore",
            "location": "../vendor/jam/underscore",
            "main": "underscore.js"
        },
        {
            "name": "backbone",
            "location": "../vendor/jam/backbone",
            "main": "backbone.js"
        },
        {
            "name": "lodash",
            "location": "../vendor/jam/lodash",
            "main": "./lodash.js"
        }
    ],
    "version": "0.2.11",
    "shim": {
        "backbone.layoutmanager": {
            "deps": [
                "jquery",
                "backbone",
                "lodash"
            ],
            "exports": "Backbone.LayoutManager"
        },
        "underscore": {
            "exports": "_"
        },
        "backbone": {
            "deps": [
                "jquery",
                "lodash"
            ],
            "exports": "Backbone"
        }
    }
};

if (typeof require !== "undefined" && require.config) {
    require.config({packages: jam.packages, shim: jam.shim});
}
else {
    var require = {packages: jam.packages, shim: jam.shim};
}

if (typeof exports !== "undefined" && typeof module !== "undefined") {
    module.exports = jam;
}
require.config.js

// Set the require.js configuration for your application.
require.config({

  // Initialize the application with the main application file and the JamJS
  // generated configuration file.
  deps: ["../vendor/jam/require.config", "main"],

  // Packeges defined at jam/require.config.js required by shim libraries
  packages: [
    {"name" : "backbone"}, 
    {"name" : "jquery"}
  ],

  paths: {
    // Put paths here.
    "codemirror" : "../vendor/codemirror-3.0/lib/codemirror",
    "codemirror-markdown": "../vendor/codemirror-3.0/mode/markdown/markdown",
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage",
    "bootstrap" : "../vendor/bootstrap-2.2.2/js/bootstrap"
  },

  shim: {
    // Put shims here.
    "codemirror-markdown": {
      deps: ["codemirror"]
    },
    "backbone.localStorage": {
      deps: ['backbone']
    },
    "bootstrap": {
      deps: ['jquery']
    }
  }

});
var jam = {
    "packages": [
        {
            "name": "jquery",
            "location": "../vendor/jam/jquery",
            "main": "jquery.js"
        },
        {
            "name": "backbone.layoutmanager",
            "location": "../vendor/jam/backbone.layoutmanager",
            "main": "backbone.layoutmanager.js"
        },
        {
            "name": "underscore",
            "location": "../vendor/jam/underscore",
            "main": "underscore.js"
        },
        {
            "name": "backbone",
            "location": "../vendor/jam/backbone",
            "main": "backbone.js"
        },
        {
            "name": "lodash",
            "location": "../vendor/jam/lodash",
            "main": "./lodash.js"
        }
    ],
    "version": "0.2.11",
    "shim": {
        "backbone.layoutmanager": {
            "deps": [
                "jquery",
                "backbone",
                "lodash"
            ],
            "exports": "Backbone.LayoutManager"
        },
        "underscore": {
            "exports": "_"
        },
        "backbone": {
            "deps": [
                "jquery",
                "lodash"
            ],
            "exports": "Backbone"
        }
    }
};

if (typeof require !== "undefined" && require.config) {
    require.config({packages: jam.packages, shim: jam.shim});
}
else {
    var require = {packages: jam.packages, shim: jam.shim};
}

if (typeof exports !== "undefined" && typeof module !== "undefined") {
    module.exports = jam;
}

多亏了阿斯哥特,我才能解决这个问题。我把文件放在下面

使用此配置,我可以将垫片库放在我的
config.js
文件中,该文件取决于jam在
require.config.js
文件中管理的包

config.js

// Set the require.js configuration for your application.
require.config({

  // Initialize the application with the main application file and the JamJS
  // generated configuration file.
  deps: ["../vendor/jam/require.config", "main"],

  // Packeges defined at jam/require.config.js required by shim libraries
  packages: [
    {"name" : "backbone"}, 
    {"name" : "jquery"}
  ],

  paths: {
    // Put paths here.
    "codemirror" : "../vendor/codemirror-3.0/lib/codemirror",
    "codemirror-markdown": "../vendor/codemirror-3.0/mode/markdown/markdown",
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage",
    "bootstrap" : "../vendor/bootstrap-2.2.2/js/bootstrap"
  },

  shim: {
    // Put shims here.
    "codemirror-markdown": {
      deps: ["codemirror"]
    },
    "backbone.localStorage": {
      deps: ['backbone']
    },
    "bootstrap": {
      deps: ['jquery']
    }
  }

});
var jam = {
    "packages": [
        {
            "name": "jquery",
            "location": "../vendor/jam/jquery",
            "main": "jquery.js"
        },
        {
            "name": "backbone.layoutmanager",
            "location": "../vendor/jam/backbone.layoutmanager",
            "main": "backbone.layoutmanager.js"
        },
        {
            "name": "underscore",
            "location": "../vendor/jam/underscore",
            "main": "underscore.js"
        },
        {
            "name": "backbone",
            "location": "../vendor/jam/backbone",
            "main": "backbone.js"
        },
        {
            "name": "lodash",
            "location": "../vendor/jam/lodash",
            "main": "./lodash.js"
        }
    ],
    "version": "0.2.11",
    "shim": {
        "backbone.layoutmanager": {
            "deps": [
                "jquery",
                "backbone",
                "lodash"
            ],
            "exports": "Backbone.LayoutManager"
        },
        "underscore": {
            "exports": "_"
        },
        "backbone": {
            "deps": [
                "jquery",
                "lodash"
            ],
            "exports": "Backbone"
        }
    }
};

if (typeof require !== "undefined" && require.config) {
    require.config({packages: jam.packages, shim: jam.shim});
}
else {
    var require = {packages: jam.packages, shim: jam.shim};
}

if (typeof exports !== "undefined" && typeof module !== "undefined") {
    module.exports = jam;
}
require.config.js

// Set the require.js configuration for your application.
require.config({

  // Initialize the application with the main application file and the JamJS
  // generated configuration file.
  deps: ["../vendor/jam/require.config", "main"],

  // Packeges defined at jam/require.config.js required by shim libraries
  packages: [
    {"name" : "backbone"}, 
    {"name" : "jquery"}
  ],

  paths: {
    // Put paths here.
    "codemirror" : "../vendor/codemirror-3.0/lib/codemirror",
    "codemirror-markdown": "../vendor/codemirror-3.0/mode/markdown/markdown",
    "backbone.localStorage": "../vendor/backbone.localStorage-1.0/backbone.localStorage",
    "bootstrap" : "../vendor/bootstrap-2.2.2/js/bootstrap"
  },

  shim: {
    // Put shims here.
    "codemirror-markdown": {
      deps: ["codemirror"]
    },
    "backbone.localStorage": {
      deps: ['backbone']
    },
    "bootstrap": {
      deps: ['jquery']
    }
  }

});
var jam = {
    "packages": [
        {
            "name": "jquery",
            "location": "../vendor/jam/jquery",
            "main": "jquery.js"
        },
        {
            "name": "backbone.layoutmanager",
            "location": "../vendor/jam/backbone.layoutmanager",
            "main": "backbone.layoutmanager.js"
        },
        {
            "name": "underscore",
            "location": "../vendor/jam/underscore",
            "main": "underscore.js"
        },
        {
            "name": "backbone",
            "location": "../vendor/jam/backbone",
            "main": "backbone.js"
        },
        {
            "name": "lodash",
            "location": "../vendor/jam/lodash",
            "main": "./lodash.js"
        }
    ],
    "version": "0.2.11",
    "shim": {
        "backbone.layoutmanager": {
            "deps": [
                "jquery",
                "backbone",
                "lodash"
            ],
            "exports": "Backbone.LayoutManager"
        },
        "underscore": {
            "exports": "_"
        },
        "backbone": {
            "deps": [
                "jquery",
                "lodash"
            ],
            "exports": "Backbone"
        }
    }
};

if (typeof require !== "undefined" && require.config) {
    require.config({packages: jam.packages, shim: jam.shim});
}
else {
    var require = {packages: jam.packages, shim: jam.shim};
}

if (typeof exports !== "undefined" && typeof module !== "undefined") {
    module.exports = jam;
}

是的,我知道这种依赖。我想知道的是,是否有一种方法可以指定程序包部分中指定的垫片依赖项。感谢上次更新帮助我。我还回答了我最后写的两个文件。是的,我知道这种依赖关系。我想知道的是,是否有一种方法可以指定程序包部分中指定的垫片依赖项。感谢上次更新帮助我。我还做了一个回答,以显示我最终编写的两个文件。