Требуют библиотек cdn в браузере, не связывая их в последнем файле js
Если у меня есть библиотека, которая вытаскивается из cdn и не хочет, чтобы она была частью финального js файла, но могла потребовать ее с помощью браузера, как бы я ее разрешил?
Вот как я в настоящее время решаю его с помощью alias
и файла прокладки.
browserify: {
options: {
debug: true,
transform: [ 'reactify' ],
alias: [
'client/shims/jquery.js:jquery'
]
},
app: {
src: 'client/app.js',
dest: 'public/app.js'
}
}
вот файл прокладки client/shims/jquery.js
, который я псевдоним jquery
, поэтому я могу использовать require('jquery')
вместо полного пути.
module.exports = $;
Есть ли ярлык в браузере grunt для поддержки этого сценария? Я хотел бы знать, можно ли определить его в Gruntfile.js без создания файла прокладки.
Добавление external: [ 'jquery' ]
похоже, полностью игнорирует его и не работает.
Ответы
Ответ 1
С browserify-shim вы можете добавить это в свой файл package.json:
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"jquery": "global:$"
}
Затем jquery будет доступен в ваших модулях через require('jquery')
Ответ 2
Если вы загружаете jQuery перед пакетом Browserify на странице, $
будет доступен как глобальный.