Closed benjamingeer closed 10 years ago
Can you post your RequireJS setup script?
OK, here you go. It's based on the one in the angular-seed-play project. In the head
tag in my index.scala.html
, I have:
@Html(org.webjars.play.RequireJS.setup("js/app"))
And this is js/app.js
:
/*global define, angular */
'use strict';
require(['angular',
'./controllers',
'./directives',
'./filters',
'./services',
'./ng-tags-input',
'ui-bootstrap-tpls',
'underscorejs',
'angular-route',
'angular-resource',
/*
* The following line should load angular-tree-control.js from the webjar, but it doesn't.
*/
'angular-tree-control'
],
function(angular, controllers) {
var ontologyEditor = angular.module('ontologyEditor',
['ontologyEditor.filters', 'ontologyEditor.services', 'ontologyEditor.directives', 'ngTagsInput', 'treeControl', 'ui.bootstrap', 'ngRoute']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/home', { templateUrl: 'partials/default.html', controller: controllers.DefaultAngularController });
$routeProvider.when('/ontology', { templateUrl: 'partials/ontology-editor.html', controller: controllers.OntologyAngularController });
$routeProvider.otherwise({ redirectTo: '/home' });
}]);
ontologyEditor.controller('TabController', ['$scope', '$location', controllers.TabController]);
angular.bootstrap(document, ['ontologyEditor']);
}
);
Sorry for not being more clear... I need the output of @Html(org.webjars.play.RequireJS.setup("js/app"))
(like from view-source).
No problem:
<script>
// this stuff must be done before require.js is loaded
var webjars = {
versions: {"angular-tree-control":"0.1.5","bootstrap":"3.1.1","angularjs":"1.3.0-beta.7","underscorejs":"1.6.0","angular-ui-bootstrap":"0.11.0","requirejs":"2.1.10","jquery":"1.9.0"},
path: function(webJarId, path) {
console.error('The webjars.path() method of getting a WebJar path has been deprecated. The RequireJS config in the ' + webJarId + ' WebJar may need to be updated. Please file an issue: http://github.com/webjars/' + webJarId + '/issues/new');
return ['/webjars/' + webJarId + '/' + webjars.versions[webJarId] + '/' + path];
}
};
var require = {
callback: function() {
// Deprecated WebJars RequireJS plugin loader
define('webjars', function() {
return {
load: function(name, req, onload, config) {
if (name.indexOf('.js') >= 0) {
console.warn('Detected a legacy file name (' + name + ') as the thing to load. Loading via file name is no longer supported so the .js will be dropped in an effort to resolve the module name instead.');
name = name.replace('.js', '');
}
console.error('The webjars plugin loader (e.g. webjars!' + name + ') has been deprecated. The RequireJS config in the ' + name + ' WebJar may need to be updated. Please file an issue: http://github.com/webjars/webjars/issues/new');
req([name], function() {;
onload();
});
}
}
});
// All of the WebJar configs
requirejs.config({"paths":{"bootstrap":["/webjars/bootstrap/3.1.1/js/bootstrap","js/bootstrap"],"bootstrap-css":["/webjars/bootstrap/3.1.1/css/bootstrap","css/bootstrap"]},"shim":{"bootstrap":["jquery"]}})
// WebJar config for angularjs
var webjarsAngularjsChildren = [
'angular-animate',
'angular-cookies',
'angular-loader',
'angular-mocks',
'angular-resource',
'angular-route',
'angular-sanitize',
'angular-scenario',
'angular-touch',
'angular-locale_en-in',
'angular-locale_sk-sk',
'angular-locale_en-dsrt-us',
'angular-locale_cs-cz',
'angular-locale_pt-pt',
'angular-locale_ml-in',
'angular-locale_ro-ro',
'angular-locale_sr',
'angular-locale_en-ie',
'angular-locale_hr',
'angular-locale_ko',
'angular-locale_sw-tz',
'angular-locale_de-ch',
'angular-locale_ja',
'angular-locale_sq-al',
'angular-locale_ln',
'angular-locale_zh-cn',
'angular-locale_en-zz',
'angular-locale_en-sg',
'angular-locale_kn',
'angular-locale_mr-in',
'angular-locale_mr',
'angular-locale_fil-ph',
'angular-locale_zh-hans',
'angular-locale_am',
'angular-locale_he-il',
'angular-locale_gl',
'angular-locale_en',
'angular-locale_en-mh',
'angular-locale_hi',
'angular-locale_ro',
'angular-locale_pt',
'angular-locale_hu',
'angular-locale_sl-si',
'angular-locale_fr-ca',
'angular-locale_fil',
'angular-locale_it',
'angular-locale_fr-bl',
'angular-locale_fr-gp',
'angular-locale_ms',
'angular-locale_sv-se',
'angular-locale_it-it',
'angular-locale_sr-latn-rs',
'angular-locale_ar-eg',
'angular-locale_en-vi',
'angular-locale_vi-vn',
'angular-locale_ja-jp',
'angular-locale_ta',
'angular-locale_en-iso',
'angular-locale_en-gu',
'angular-locale_eu-es',
'angular-locale_no',
'angular-locale_hu-hu',
'angular-locale_fr-mf',
'angular-locale_en-um',
'angular-locale_gl-es',
'angular-locale_pl',
'angular-locale_nl-nl',
'angular-locale_et',
'angular-locale_de-lu',
'angular-locale_da',
'angular-locale_zh',
'angular-locale_tr-tr',
'angular-locale_am-et',
'angular-locale_te-in',
'angular-locale_hi-in',
'angular-locale_et-ee',
'angular-locale_tr',
'angular-locale_sk',
'angular-locale_sr-rs',
'angular-locale_lv',
'angular-locale_fa-ir',
'angular-locale_sl',
'angular-locale_el-gr',
'angular-locale_bn-bd',
'angular-locale_lt-lt',
'angular-locale_sq',
'angular-locale_fr-mq',
'angular-locale_ms-my',
'angular-locale_id',
'angular-locale_bn',
'angular-locale_hr-hr',
'angular-locale_fr-mc',
'angular-locale_id-id',
'angular-locale_es',
'angular-locale_es-es',
'angular-locale_cs',
'angular-locale_zh-hans-cn',
'angular-locale_fr',
'angular-locale_th-th',
'angular-locale_te',
'angular-locale_fa',
'angular-locale_kn-in',
'angular-locale_or',
'angular-locale_pt-br',
'angular-locale_zh-hk',
'angular-locale_gu',
'angular-locale_en-au',
'angular-locale_is-is',
'angular-locale_en-gb',
'angular-locale_ln-cd',
'angular-locale_mo',
'angular-locale_sw',
'angular-locale_tl',
'angular-locale_mt',
'angular-locale_vi',
'angular-locale_de',
'angular-locale_mt-mt',
'angular-locale_pl-pl',
'angular-locale_uk-ua',
'angular-locale_gsw-ch',
'angular-locale_ca',
'angular-locale_tl-ph',
'angular-locale_da-dk',
'angular-locale_ca-es',
'angular-locale_bg-bg',
'angular-locale_nl',
'angular-locale_or-in',
'angular-locale_gu-in',
'angular-locale_zh-tw',
'angular-locale_bg',
'angular-locale_is',
'angular-locale_eu',
'angular-locale_el-polyton',
'angular-locale_fr-re',
'angular-locale_sr-cyrl-rs',
'angular-locale_lt',
'angular-locale_sv',
'angular-locale_en-za',
'angular-locale_ur-pk',
'angular-locale_fi',
'angular-locale_he',
'angular-locale_en-mp',
'angular-locale_ru-ru',
'angular-locale_de-at',
'angular-locale_en-as',
'angular-locale_gsw',
'angular-locale_ko-kr',
'angular-locale_de-de',
'angular-locale_ru',
'angular-locale_iw',
'angular-locale_uk',
'angular-locale_in',
'angular-locale_en-dsrt',
'angular-locale_el',
'angular-locale_en-us',
'angular-locale_fi-fi',
'angular-locale_ar',
'angular-locale_de-be',
'angular-locale_th',
'angular-locale_ta-in',
'angular-locale_ml',
'angular-locale_lv-lv',
'angular-locale_ur',
'angular-locale_fr-fr' ];
var webjarsAngularjsPaths = { "angular": webjars.path("angularjs", "angular") };
var webjarsAngularjsShim = { "angular": {"exports" : "angular"} };
webjarsAngularjsChildren.forEach(function(child) {
webjarsAngularjsPaths[child] = webjars.path("angularjs", child);
webjarsAngularjsShim[child] = ["angular", "webjars!angular.js"];
});
requirejs.config({
paths: webjarsAngularjsPaths,
shim: webjarsAngularjsShim
});
// WebJar config for underscorejs
requirejs.config({
paths: { "underscorejs": webjars.path("underscorejs", "underscore") },
shim: { "underscorejs": { "exports": "_" } }
});
// WebJar config for angular-ui-bootstrap
requirejs.config({
paths: {
'ui-bootstrap': webjars.path('angular-ui-bootstrap', 'ui-bootstrap'),
'ui-bootstrap-tpls': webjars.path('angular-ui-bootstrap', 'ui-bootstrap-tpls')
},
shim: {
'ui-bootstrap': [ 'angular' ],
'ui-bootstrap-tpls': [ 'angular' ]
}
});
}
}
</script>
The RequireJS config was broken. I've fixed it and am releasing 0.1.5-2
. Sorry about the hassle.
It works now, thanks!
As instructed in webjars issue 372, I've upgraded to
angular-tree-control
webjar 0.1.5-1 and addedwebjars-locator
to mybuild.sbt
:My RequireJS dependency is
'angular-tree-control'
, which should cause RequireJS to loadangular-tree-control.js
from the webjar, but Firebug shows that RequireJS is still trying to load this URL and getting a 404 error:This URL works when I open it manually in the browser:
All the other webjars I'm using are working fine with RequireJS.