W wersji 2.0.2 grunt-browserify
, browserify-shim
usunięto z samego modułu i przekształcono do stosowania jako transform
raczej niż proste option
w zadaniu grunt-browserify
.trudności w browserify-podkładka działa w grunt-browserify (> 2.0.2) w transformacji
stary wersja stosując podkładkę z grunt-browserify
będzie wyglądać w następujący sposób:
'libs-dev': {
src: [path.join('<%= config.dirs.browserLibs %>', 'angular', 'angular.js')],
dest: path.join('<%= config.dirs.dest.dev %>', 'js', 'libs.js'),
options: {
shim: {
angular: {
path: path.join('<%= config.dirs.browserLibs %>', 'angular', 'angular.js'),
exports: 'angular'
}
}
}
}
To było wspaniałe, a generowane otoki wokół modułu libs.js
jako takie:
require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({"angular":[function(require,module,exports){
module.exports=require('i10PRm');
},{}],"i10PRm":[function(require,module,exports){
(function(global){(function browserifyShim(module, exports, define, browserify_shim__define__module__export__) {
browserify_shim__define__module__export__(typeof angular != "undefined" ? angular : window.angular);
}).call(global, undefined, undefined, undefined, function defineExport(ex) { module.exports = ex; });
})(window)
},{}]},{},["i10PRm"]);
jednak , na podstawie (niewiarygodnie rzadkiej i frustrującej) dokumentacji, nowa wersja podkładki w zakresie grunt-browserify
jest używana jako transform
, jako takich:
'libs-dev': {
src: [path.join('<%= config.dirs.browserLibs %>', 'angular', 'angular.js')],
dest: path.join('<%= config.dirs.dest.dev %>', 'js', 'libs.js'),
options: {
transform: ['browserify-shim']
}
}
, a od konfiguracji browserify-shim
„s jest teraz całkowicie w oparciu o package.json
konfiguracji, mój package.json
wygląda w następujący sposób:
"browser": {
"angular": "./bower_components/angular/angular.js"
},
"browserify-shim": {
"angular": "angular"
}
Jednak ta generuje owijkę, która wygląda jak :
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
(function (global){
__browserify_shim_require__=require;(function browserifyShim(module, exports, require, define, browserify_shim__define__module__export__) {
browserify_shim__define__module__export__(typeof angular != "undefined" ? angular : window.angular);
}).call(global, undefined, undefined, undefined, undefined, function defineExport(ex) { module.exports = ex; });
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}]},{},[1]);
Jak widać, czegoś brakuje w tym nowym opakowaniu; nie wydaje się być odpowiednikiem wartości eksportu i10PRm
przypisanej w starym opakowaniu. Prawdopodobnie oznacza to, że nieprawidłowo używam eksportu, mimo że postępuję zgodnie z dokumentami browserify-shim
i wszystko wydaje się dość proste.
Życzę wszelkiej pomocy lub jasności odnośnie najnowszych wersji grunt-browserify
) i oraz sposobu prawidłowego ich użycia.
Upvoting za znaczenie. Przysięgam, narzędzia JS są teraz jak dziki zachód. Wszyscy pchają się do przodu, rywalizacja tworzy się między obozami, miasta duchów już istnieją, ludzie zostają z tyłu, a nikt nie zatrzyma się, dopóki nie dotrą do wybrzeża, a potem nie ma innego miejsca. –