Я пытаюсь модифицировать requirejs в проект, и я периодически получаю «404 Not Found» в файлах.RequireJS не загружает правильный путь
Каждый, примерно, 3 или 4 перезагружается я получаю следующие ошибки
GET http://localhost:8080/build/jquery.js
Uncaught Error: Script error for: jquery
GET http://localhost:8080/build/touchSwipe.js
Uncaught Error: Script error for: touchSwipe
Мои файлы выглядит следующим образом:
config.js
require.config({
paths: {
'jquery': 'vendor/jquery',
'touchSwipe': 'vendor/jquery.touchSwipe.min',
'scripts': 'scripts/'
},
shim: {
'touchSwipe': {
deps: ['jquery']
}
}
});
require(['main']);
main.js
require(
['scripts/menu',
.. more js files .. ]);
Я использую gr ЕНТ-CONTRIB-requirejs оптимизировать файлы и все, кажется, работает нормально
Gruntfile.js
requirejs: {
compile: {
options: {
baseUrl: "path/to/file/",
mainConfigFile: "path/to/file/config.js",
dir: 'path/to/build/',
modules: [
{
name: 'main'
},
],
uglify: {
no_mangle: true
},
}
}
}
... и просто заполнить пробелы, мой файл main.hbs имеет этот сценарий тег
<script data-main="/build/config" src="/js/vendor/require.js"></script>
Как я уже сказал, все это работает нормально, пока я не попытаюсь представить больше модулей. Модули, которые я хочу только загрузить на определенные страницы.
я пытаюсь сделать это, добавив следующий код в конце соответствующей страницы
<script type="text/javascript">
require(['scripts/page1']);
</script>
page1.js файл выглядит так ...
define(['jquery', 'touchSwipe'], function ($j) {
...
});
Времена, когда эти ошибки не появляются, сайт работает нормально. Еще одна вещь, которую следует отметить, это то, что это только кажется, когда я запускаю код через задачу Grunt.
Проблема в том, что URL-адреса в ошибках ошибочны. jQuery следует искать в/build/vendor/rather than/build /, тогда как touchSwipe - это путь, который я определил для библиотеки. Это похоже на вопрос о сроках; конфигурация загружается после нового файла.