Answers:
'use strict';
එතීමේ ශ්රිතයක පළමු ප්රකාශය ලෙස ඇතුළත් කරන්න , එබැවින් එය බලපාන්නේ එම ශ්රිතයට පමණි. දැඩි නොවන ස්ක්රිප්ට් සංයුක්ත කිරීමේදී මෙය ගැටළු වළක්වයි.
ඩග්ලස් ක්රොක්ෆර්ඩ්ගේ නවතම බ්ලොග් සටහන බලන්න දැඩි ප්රකාරය නගරයට පැමිණේ .
එම තනතුරෙන් උදාහරණය:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
යාවත්කාලීන කිරීම: ඔබට ක්ෂණික ක්රියාකාරිත්වයට එතීමට අවශ්ය නැතිනම් (උදා: එය නෝඩ් මොඩියුලයක්), එවිට ඔබට අනතුරු ඇඟවීම අක්රිය කළ හැකිය.
සඳහා JSLint (එක් Zhami ):
/*jslint node: true */
සඳහා JSHint :
/*jshint strict:false */
හෝ ( ලයිත් සෙවනට අනුව )
/* jshint -W097 */
JSHint වෙතින් අත්තනෝමතික අනතුරු ඇඟවීමක් අක්රිය කිරීමට, JSHint ප්රභව කේතයේ සිතියම පරීක්ෂා කරන්න (විස්තර ලේඛනවල ).
යාවත්කාලීන 2: JSHintnode:boolean
විකල්පය සඳහා සහය දක්වයි . .jshintrc
ගිතුබ් හි බලන්න .
/* jshint node: true */
-1
/*jshint strict:false */
, ඔබ කරන්නේ කුමක්ද යන්න පැහැදිලි කිරීම (මම නොදන්නා ඔබේ සංඛ්යා කේතයට විශේෂ ප්රතිලාභයක් නොමැති නම්)
"use strict";
එක් ගොනුවකට එක් වරක් පමණක් නියම කිරීමටය .
ඔබ NodeJS සඳහා මොඩියුල ලියන්නේ නම්, ඒවා දැනටමත් සංයුක්ත කර ඇත. ඔබේ ගොනුවේ ඉහළින් ඇතුළත් කිරීමෙන් ඔබට නෝඩ් ඇති බව JSLint ට කියන්න:
/*jslint node: true */
/*jshint strict:false */
"node": true
.Jshintrc
මම යෝජනා කරනවා ඒ වෙනුවට jshint භාවිතා කරන්න.
එමඟින් මෙම අනතුරු ඇඟවීම යටපත් කිරීමට ඉඩ ලබා දේ /*jshint globalstrict: true*/
.
ඔබ පුස්තකාලයක් ලියන්නේ නම්, මම යෝජනා කරන්නේ ඔබේ කේතය මොඩියුලවලට ඇතුළත් කර ඇත්නම් පමණක් ගෝලීය දැඩි ලෙස භාවිතා කිරීමයි.
එසේ නොමැතිනම් ඔබේ පුස්තකාලය භාවිතා කරන සෑම කෙනෙකුම දැඩි ක්රමයට බල කරනු ඇත.
strict: 'global'
දැන් උත්සාහ කරන්න , සහ jshint.com/docs/options/#globalstrict
හරස් වේදිකා ජාවාස්ක්රිප්ට් බ්ලොග් සටහනෙන් පසුව මම Node.js / browserify යෙදුමක් නිර්මාණය කිරීමට පටන් ගතිමි . මගේ අලුත්ම ග්රන්ට්ෆයිල් ජිෂින්ට් සමත් නොවූ නිසා මම මේ ප්රශ්නයට මුහුණ දුන්නා.
වාසනාවකට මෙන් ග්රන්ට් පිළිබඳ ලීන්පබ් පොතේ පිළිතුරක් මට හමු විය :
අපි දැන් එය උත්සාහ කළහොත්, අපි අපගේ ග්රන්ට්ෆයිල් පරිලෝකනය කර දෝෂ කිහිපයක් ලබා ගනිමු:
$ grunt jshint Running "jshint:all" (jshint) task Linting Gruntfile.js...ERROR [L1:C1] W097: Use the function form of "use strict". 'use strict'; Linting Gruntfile.js...ERROR [L3:C1] W117: 'module' is not defined. module.exports = function (grunt) { Warning: Task "jshint:all" failed. Use --force to continue.
දෝෂ දෙකම සිදුවන්නේ ග්රන්ට්ෆයිල් යනු නෝඩ් වැඩසටහනක් වන අතර පෙරනිමියෙන් ජේඑස්හින්ට් විසින් භාවිතා කිරීමට
module
සහ නූල් අනුවාදය හඳුනා ගැනීමට හෝ ඉඩ නොදේuse strict
. අපගේ Node වැඩසටහන් පිළිගන්නා JSHint රීතියක් අපට සැකසිය හැකිය. අපි අපගේ jshint කාර්ය වින්යාසය සංස්කරණය කර විකල්ප යතුරක් එක් කරමු:jshint: { options: { node: true }, }
Jshint "නෝඩ් මාදිලියට" ඇතුළත් කිරීම node: true
සඳහා jshint වෙත එකතු කිරීම options
, මා සඳහා වූ දෝෂ දෙකම ඉවත් කළේය.
පහත සඳහන් අන්තර්ගතය සමඟ ඔබේ ව්යාපෘතියේ මුල .jslintrc (හෝ .jshintrc) ගොනුවක් එක් කරන්න:
{
"node": true
}
නූල් පෝරමයේ සහජයෙන්ම වැරැද්දක් නැත.
දැඩි නොවන ජාවාස්ක්රිප්ට් සංයුක්ත කිරීම ගැන කරදර වීම සඳහා "ගෝලීය" දැඩි ස්වරූපයෙන් වැළකී සිටිනවා වෙනුවට, දැඩි නොවන දැඩි ජාවාස්ක්රිප්ට් දැඩි ලෙස නිවැරදි කිරීම වඩා හොඳය.
මම හිතන්නේ හැමෝටම මෙම ප්රශ්නයේ "හදිසියේ" කොටස මග හැරුණි. බොහෝ දුරට, ඔබේ .jshintrc හි සින්ටැක්ස් දෝෂයක් ඇති බැවින් එය 'බ්රව්සර්' රේඛාව ඇතුළත් නොවේ. දෝෂය ඇති තැන බැලීමට එය json වලංගු කරන්නෙකු හරහා ධාවනය කරන්න.
මෙය කෙතරම් සරලද: ඔබේ සියලු කේත සමඟ දැඩි වීමට ඔබට අවශ්ය නම් "use strict";
, ඔබේ ජාවාස්ක්රිප්ට් ආරම්භයේදීම එක් කරන්න.
නමුත් ඔබට අවශ්ය වන්නේ ඔබේ සමහර කේත සමඟ දැඩි ලෙස කටයුතු කිරීමට නම්, ක්රියාකාරී පෝරමය භාවිතා කරන්න. කෙසේ වෙතත්, ඔබේ ජාවාස්ක්රිප්ට් ආරම්භයේදීම එය භාවිතා කිරීමට මම ඔබට නිර්දේශ කරමි, මන්ද මෙය ඔබට වඩා හොඳ කේතයක් වීමට උපකාරී වනු ඇත.
"use strict";
මගේ JS ගොනුවේ ඉහළින්ම තැබූ විට මට මෙම දෝෂය ඇතිවේ, එබැවින් මෙය සම්පූර්ණයෙන්ම සත්ය නොවනු ඇත.
"use strict";
ඔබේ කේතයේ ඉහළින්ම තබා ඇති "ගෝලීය" ආකෘතිය පිළිගන්නේ නැත . එය ඉඩ "use strict;"
දෙන්නේ ශ්රිතයක ඔතා ඇති විට පමණි . (JS_Hint_ ඔබට ගෝලීය ආකෘතිය භාවිතා කිරීමට ඉඩ දෙයි, නමුත් - අවශ්ය සැකසුම සඳහා ඉහත පිළිතුර බලන්න).