gpt4 book ai didi

requirejs - 如何包装使用 RequireJS 加载的外部库?

转载 作者:行者123 更新时间:2023-12-02 23:47:50 26 4
gpt4 key购买 nike

我已经使用 requireJS 设置了一个 Angular 应用程序。在部署之前,我将所有内容捆绑到一个唯一的文件中。通常,外部库没有 requireJS“定义”包装器。

例如Angular Parallax库是这样写的:

# https://github.com/durated/angular-parallax/blob/master/angular-parallax.min.js
angular.module("duParallax",["duScroll","duParallax.directive"...

这是我的 main.js:

require.config({
baseUrl: '/angular-dev',
paths: {
angular: '//ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.min',
angularScroll: 'bower_components/angular-scroll/angular-scroll.min',
angularParallax: 'bower_components/ng-parallax/angular-parallax.min'
},
shim: {
'angular': { exports: 'angular' },
'angularScroll': { deps: ['angular'] },
'angularParallax': { deps: ['angular'] }
}
});

我使用 grunt-contrib-requirejs 将所有库(不是 CDN 库)捆绑到一个唯一的文件中。这是我把所有东西捆绑在一起后得到的:

angular.module("duParallax",["duScroll","duParallax.directive"...
define("angularParallax", ["angular"], function(){});

但我期望的是代码被包装在定义中:

define("angularParallax", ["angular"], function(){
angular.module("duParallax",["duScroll","duParallax.directive"...
});

如何在不更改库本身的情况下实现最新版本?

编辑:根据另一个 stackoverflow 问题,这就是它应该如何工作。但我还使用 grunt-contrib-requirejs 来捆绑我的代码,这可能就是问题所在。

Shim from grunt-contrib-requirejs not wrapping library

最佳答案

默认情况下,r.js 不会包装非 AMD 兼容的库。您需要将以下选项添加到 grunt-requirejs-contrib 设置中:

wrapShim: true

关于requirejs - 如何包装使用 RequireJS 加载的外部库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21908659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com