Определение grunt requirejs 'undefined'
Я пытаюсь оптимизировать RequireJS
с помощью GruntJS
, используя плагин grunt-contrib-requirejs
.
Проблема заключается в том, что мой код отлично работает, прежде чем оптимизировать его, а затем после его оптимизации на консоли он говорит Uncaught ReferenceError: define is not defined
.
Здесь Gruntfile.js
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-requirejs');
grunt.initConfig({
requirejs: {
compile : {
options : {
name : 'main',
baseUrl : ".",
mainConfigFile : "./main.js",
out : "./optimized.js",
preserveLicenseComments: false
}
}
}
})
grunt.registerTask('default', 'requirejs');
}
Ответы
Ответ 1
Поскольку define
является функцией requireJs, кажется, вы не можете загрузить requireJs или любой другой загрузчик AMD. Если вам не нужно загружать какой-либо другой модуль AMD, тогда вы выполнили один раз, вы можете использовать легкий манипулятор загрузки, например almond.
Ответ 2
Добавление файла require.js в качестве опции "включить" должно работать.
requirejs: {
compile : {
options : {
name : 'main',
baseUrl : ".",
mainConfigFile : "./main.js",
out : "./optimized.js",
preserveLicenseComments: false,
include: ['path/to/require.js']
}
}
}
Ответ 3
Как указано выше, не требуется requirejs- script.
Это означает, что официальная официальная requirejs-страница предлагает вам сделать это (разорвана из моего файла grunt):
requirejs: {
compile: {
options: {
baseUrl: "src/js",
mainConfigFile: 'src/js/require.config.js',
paths: {
requireLib: "vendor/require/require"
},
include: "requireLib",
name: "require.config",
out: "dist/js/bundle.js"
}
}
},
Обратите внимание на опции пути и include, которые необходимы для определения необходимости.
Просто укажите параметр requireLib для вашего файла require.js.
См. официальный ответ здесь: http://requirejs.org/docs/optimization.html#onejs
Ответ 4
Кажется, что grunt-contrib-requirejs не компилирует requirejs по умолчанию. Вы можете использовать concat для повторного добавления requirejs.
concat : {
dist : {
src : ['./optimized.js', 'path/to/requirejs.js'],
dest : './optimized.js'
},
}
grunt.loadNpmTasks('grunt-contrib-concat');