Как требовать JQuery в Node, используя Gulp?
Создание PWA поверх NodeJS. использующий gulp
к процессам package/bundle
для производства. Также используя jQuery
,
Получение ошибки:
Uncaught ReferenceError: jQuery не определен
package.json
:
"devDependencies": {
"browserify": "^16.2.2",
"gulp": "^3.9.1",
"gulp-browserify": "^0.5.1",
"gulp-clean-css": "^3.10.0",
"gulp-concat-css": "^3.1.0",
"gulp-if": "^2.0.2",
"gulp-sourcemaps": "^2.6.4",
"gulp-uglify": "^3.0.1",
"gulp-webserver": "^0.9.1",
"jquery": "^3.3.1",
"sw-precache": "^5.2.1"
}
Задача глотка:
gulp.task('js', function () {
return gulp.src(src + '/js/app.js')
.pipe(browserify())
.pipe(gulpif(environment === 'production', uglify()))
.on('error', function (err) {
console.error('Error!', err.message);
})
.pipe(gulp.dest(dest + '/js'));
});
app.js
является:
(function () {
'use strict';
var $ = jQuery = require('jquery');
require('./bootstrap-3.3.7.min.js');
$('.loader').fadeOut(1000);
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('./service-worker.js')
.then(function (registration)
console.log('Service Worker Active', registration.scope);
})
.catch(function (err) {
console.log('Service worker registration failed : ', err);
});
}
})(); // Page Ready
Если мое понимание Узла верно, jQuery
включается из require
позвоните, прежде чем использовать $
, Поэтому я не понимаю, почему я получаю ошибку.
Обратите внимание, что, хотя у других постов были проблемы с Browserify и jQUery, я не думаю, что это проблема.
1 ответ
Ты используешь use strict
, что предотвращает любое пропущенное создание глобальной переменной.
Таким образом, когда проблема с var $ = jQuery = require('jquery');
в качестве случайной переменной jQuery, которая не существует, создается как глобальная переменная и присваивается $
, use strict
помешал этому.
Просто используйте
'use strict';
var $ = require('jquery');
Также прочитайте, что делает "использование строгого" в JavaScript