valor-software / ngx-bootstrap

Fast and reliable Bootstrap widgets in Angular (supports Ivy engine)
https://valor-software.com/ngx-bootstrap
MIT License
5.53k stars 1.69k forks source link

moment throws a "Forbidden" #663

Closed alfakappa closed 8 years ago

alfakappa commented 8 years ago

The paths/mapping is allright, only for some reason it gives me a forbidden.

Any help?

(function(global) {
    // map tells the System loader where to look for things
    var map = {
        'app':                        '/plugins/dashboard/assets/@@version@@/app', // 'dist',
        'rxjs':                       '/plugins/dashboard/assets/@@version@@/node_modules/rxjs',
        'angular2-in-memory-web-api': '/plugins/dashboard/assets/@@version@@/node_modules/angular2-in-memory-web-api',
        '@angular':                   '/plugins/dashboard/assets/@@version@@/node_modules/@angular',
        'ng2-charts':                 '/plugins/dashboard/assets/@@version@@/node_modules/ng2-charts',
        'ng2-table':                  '/plugins/dashboard/assets/@@version@@/node_modules/ng2-table',
        'ng2-bootstrap':              '/plugins/dashboard/assets/@@version@@/node_modules/ng2-bootstrap',
        'moment':                     '/plugins/dashboard/assets/@@version@@/node_modules/moment'
    };
    // packages tells the System loader how to load when no filename and/or no extension
    var packages = {
        'app':                        { main: 'main.js',  defaultExtension: 'js' },
        'rxjs':                       { defaultExtension: 'js' },
        'angular2-in-memory-web-api': { defaultExtension: 'js' },
        'ng2-charts':                 { defaultExtension: 'js' },
        'ng2-table':                  { defaultExtension: 'js' },
        'ng2-bootstrap':              { defaultExtension: 'js' },
        'moment':                     { defaultExtension: 'js' }
    };
    var packageNames = [
        '@angular/common',
        '@angular/compiler',
        '@angular/core',
        '@angular/http',
        '@angular/platform-browser',
        '@angular/platform-browser-dynamic',
        '@angular/router',
        '@angular/router-deprecated',
        '@angular/testing',
        '@angular/upgrade'
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function(pkgName) {
        packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
    });
    var config = {
        map: map,
        packages: packages
    };
    System.config(config);
})(this);
zone.min.js:1 GET http://dashboard.dev.prisma-it.com:8888/plugins/dashboard/assets/@@version@@/node_modules/moment/ 403 (Forbidden)n @ zone.min.js:1e.scheduleTask @ zone.min.js:1e.scheduleMacroTask @ zone.min.js:1(anonymous function) @ zone.min.js:1send @ VM43067:3fetchTextFromURL @ system.src.js:1156(anonymous function) @ system.src.js:1739e @ zone.min.js:1(anonymous function) @ system.src.js:1738(anonymous function) @ system.src.js:2764(anonymous function) @ system.src.js:3338(anonymous function) @ system.src.js:3605(anonymous function) @ system.src.js:3990(anonymous function) @ system.src.js:4453(anonymous function) @ system.src.js:4705(anonymous function) @ system.src.js:408e.invoke @ zone.min.js:1e.run @ zone.min.js:1(anonymous function) @ zone.min.js:1e.invokeTask @ zone.min.js:1e.runTask @ zone.min.js:1a @ zone.min.js:1invoke @ zone.min.js:1
(index):178 Error: Error: XHR error (403 Forbidden) loading http://dashboard.dev.prisma-it.com:8888/plugins/dashboard/assets/@@version@@/node_modules/moment
        at XMLHttpRequest.t [as _onreadystatechange] (http://dashboard.dev.prisma-it.com:8888/assets/@@version@@/zone.js/dist/zone.min.js:1:11989)
        at e.invokeTask (http://dashboard.dev.prisma-it.com:8888/assets/@@version@@/zone.js/dist/zone.min.js:1:7846)
        at e.runTask (http://dashboard.dev.prisma-it.com:8888/assets/@@version@@/zone.js/dist/zone.min.js:1:5204)
        at XMLHttpRequest.invoke (http://dashboard.dev.prisma-it.com:8888/assets/@@version@@/zone.js/dist/zone.min.js:1:8955)
    Error loading http://dashboard.dev.prisma-it.com:8888/plugins/dashboard/assets/@@version@@/node_modules/moment as "moment" from http://dashboard.dev.prisma-it.com:8888/plugins/dashboard/assets/@@version@@/node_modules/ng2-bootstrap/components/datepicker/date-formatter.js
alfakappa commented 8 years ago

Additional info; I use moment as a stand alone as well like this

/*
 * Import Custom Components
 */
import * as moment from 'moment/moment';

// under systemjs, moment is actually exported as the default export, so we account for that
const momentConstructor: (value?: any) => moment.Moment = (<any>moment).default || moment;

which works perfectly fine. however it is not working in the datepicker.

alfakappa commented 8 years ago

Fixed it. it could not find moment.js since there is a package.js file available as well when installing it with npm.

'moment':                     { main: 'moment.js', defaultExtension: 'js' }

in my mapping object solved it.

theotherdy commented 8 years ago

What's the best way to drop the date components, which I don't need, of ng2-bootstrap so I can avoid having to work out how to reference moment.js- see: https://github.com/mgechev/angular2-seed/issues/468

alfakappa commented 8 years ago

don't use datepicker :)

theotherdy commented 8 years ago

Thanks @alfakappa, I wasn't, but the angular2-seed build script still wanted dependencies for datepicker....so I've just run through ng2-bootstrap and deleted/commented out all references to datepicker - I'll have to do it all again next time I update but it'll be less than the time I've wasted on trying to sort this moment problem. Thanks again.