ΠΡΠΈΠ²Π΅Ρ,
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΉ POC Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΌΠΎΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ angular ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ requirejs. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ»Π°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ JsHint. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ - Π½Π΅ Π±ΡΠ»ΠΎ nodejs.
Π― Π²Π·ΡΠ» ΡΠ°ΠΉΠ» js ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ dist ΡΠ΅Π»ΠΈΠ·Π° ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΠ» Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ
Uncaught TypeError: _.each Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΡΠ΅Π· require, Ρ ΠΎΡΠΎΡΠΈ, ΠΊΠ°ΠΊ bootstrap ΠΈ angular. Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ underscore.js ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π΅Π³ΠΎ Π΄ΠΎ jshint, Π½ΠΎ Π±Π΅Π·ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ½ΠΎ.
ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° jshint ΠΈΠ»ΠΈ Ρ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ. Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠΎΠ΅ΠΉ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ requirejs
require.config ({
baseUrl: 'ΡΠΊΡΠΈΠΏΡΡ',
paths: {
'jshint': 'lib / jshint / jshint',
'ΡΠ³Π»ΠΎΠ²ΠΎΠΉ': 'lib / angular / angular.min',
'ΡΠ³Π»ΠΎΠ²ΠΎΠΉ-ΠΌΠ°ΡΡΡΡΡ': 'Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° / ΡΠ³Π»ΠΎΠ²ΠΎΠΉ / ΡΠ³Π»ΠΎΠ²ΠΎΠΉ-ΠΌΠ°ΡΡΡΡΡ.min'
},
shim: {
'app': {
deps: ['jshint','angular', 'angular-route']
},
'angular-route': {
deps: ['angular']
}
}
});
ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ
(
[
'ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅'
],
ΡΡΠ½ΠΊΡΠΈΡ (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)
{
angular.bootstrap (Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ['ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅']);
}
);
Π― ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ jshint. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ jshint ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ lodash, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ Ρ lodash, Ρ ΠΎΡΡ Ρ Π² ΡΡΠΎΠΌ ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΡ.
ΠΡΠΎΡΡΠΎ ΡΠΏΠΈΡΠ±Π°Π»Π»ΠΈΠ½
Π― ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ... ΠΡΡΡ Π»ΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ?
ΠΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ requirejs (ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, AMD Π² ΡΠ΅Π»ΠΎΠΌ) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ±ΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ lodash.
ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² v2.6.3, Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π°Π²Π°ΡΡ ΡΠ±ΠΎΠΉ Π² v2.7.0
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π΅Ρ Ρ v2.9.3 . ΠΡΠΈΠ±ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°:
VM104 jshint.js:15777
Uncaught TypeError: _.each is not a function
require.14.lodash @ VM104 jshint.js:15777
s @ VM104 jshint.js:6
(anonymous function) @ VM104 jshint.js:6
...
ΠΠ°ΠΎΠ±ΠΎΡΠΎΡ,
ΠΡΠ±Π°Ρ ΠΈΠ΄Π΅Ρ?
Π SystemJS Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΠΊ global
(Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ AMD ΠΈΠ»ΠΈ CommonJS) Π² ΠΌΠ΅ΡΠ° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ https://github.com/systemjs/systemjs/blob/master/docs/module-formats. md # globals
SystemJS.config({
baseURL: './js',
defaultJSExtensions: true,
paths: {
'jquery': './js/vendor/jquery/jquery-3.2.1.min.js',
// ...
},
meta: {
'./js/vendor/codemirror/addon/lint/jshint.js': { format: 'global' }
}
});
SystemJS.import('./js/app.js').then(function (app) {
// ...
})
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Webpack Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Ρ requireJS.
ΠΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ requirejs (ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, AMD Π² ΡΠ΅Π»ΠΎΠΌ) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ±ΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ lodash.
ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² v2.6.3, Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π°Π²Π°ΡΡ ΡΠ±ΠΎΠΉ Π² v2.7.0Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π΅Ρ Ρ v2.9.3 . ΠΡΠΈΠ±ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°:
VM104 jshint.js:15777 Uncaught TypeError: _.each is not a function require.14.lodash @ VM104 jshint.js:15777 s @ VM104 jshint.js:6 (anonymous function) @ VM104 jshint.js:6 ...
ΠΠ°ΠΎΠ±ΠΎΡΠΎΡ,
- ΠΎΠ±ΡΠ°Π·Π΅Ρ Ρ JSHINT v2.6.3 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ;
- ΠΎΠ±ΡΠ°Π·Π΅Ρ Ρ v.2.7.0 Π½Π°ΡΠΈΠ½Π°Π΅Ρ
ΠΡΠ±Π°Ρ ΠΈΠ΄Π΅Ρ?
ΠΠΎΡΠ»Π΅ 2.6.3 ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Ρ Underscore Π½Π° Lodash.
ΠΡΠΌΠ΅ΡΡΡΠ΅ 'var _ = require ("ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅);' Π² 2.6.3 ΠΈ 'var _ = require ("lodash");' Π² 2.12.10
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ requirejs (ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, AMD Π² ΡΠ΅Π»ΠΎΠΌ) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ±ΠΎΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ lodash.
ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² v2.6.3, Π½ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π°Π²Π°ΡΡ ΡΠ±ΠΎΠΉ Π² v2.7.0
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π΅Ρ Ρ v2.9.3 . ΠΡΠΈΠ±ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°:
ΠΠ°ΠΎΠ±ΠΎΡΠΎΡ,
ΠΡΠ±Π°Ρ ΠΈΠ΄Π΅Ρ?