Я получаю 404 Не найдено, когда JS-файл требует другого JS-файла, а в заявлении require он не указывает расширение .js.404, когда JS-файл требует другого JS-файла без расширения .js
У меня есть файл с именем CalendarUtils.js, который требует некоторых модулей из финиковых FNS:
module.exports = factory(require("date-fns/add_days/index"));
я получаю 404:
[1] 16.11.14 10:45:55 404 GET /lib/date-fns/add_days/index
Если изменить CalendarUtils. js as:
module.exports = factory(require("date-fns/add_days/index.js"));
Тогда он работает.
Мне интересно, почему это происходит. Это происходит в нескольких местах, и я не хотел бы вносить изменения во всем мире. Я использую Angular2.
Мой-FNS индексный файл:
gaurav:application gaurav$ tree build/lib/date-fns/add_days/
build/lib/date-fns/add_days/
└── index.js
Пожалуйста, задать мне любой вопрос, если это необходимо. Большое спасибо.
System файл конфигурации для angular2 знать расположение файлов:
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'lib/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'date-fns': 'npm:date-fns',
'angular-calendar': 'npm:angular-calendar/dist/umd/angular-calendar.js',
'angular-resizable-element': 'npm:angular-resizable-element/dist/umd/angular-resizable-element.js',
'calendar-utils': 'npm:calendar-utils/dist/umd/calendarUtils.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
}
}
});
})(this);
дата-FNS папка находится под node_modules в то время как развитие .. и он находится в папке Lib во время службы. Поэтому я не могу использовать относительный путь. У меня есть конфигурация системы для angular2, чтобы найти местоположение файла в обновленном вопросе. Файл Config работает для всех модулей, кроме date-fns. Я помещаю файл конфигурации в обновленный исходный вопрос. –
Angular2 находит местоположение файла index.js без относительного пути из-за конфигурации angular2. Я просто не понимаю, почему он не находит его без расширения .js. –