Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isaacs/use-strict
Makes all subsequent modules in Node get loaded in strict mode.
https://github.com/isaacs/use-strict
Last synced: 3 months ago
JSON representation
Makes all subsequent modules in Node get loaded in strict mode.
- Host: GitHub
- URL: https://github.com/isaacs/use-strict
- Owner: isaacs
- License: isc
- Archived: true
- Created: 2013-04-29T17:55:47.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-20T07:29:29.000Z (over 9 years ago)
- Last Synced: 2024-05-02T01:17:35.571Z (6 months ago)
- Language: JavaScript
- Size: 121 KB
- Stars: 37
- Watchers: 4
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# use-strict
Makes all modules in Node get loaded in strict mode.
## Usage
```javascript
require('use-strict')
// That's it, now everything is strict forever.
// in other words: FTFY, YOU'RE WELCOME.
```## Downside
Strict mode in JavaScript is virtually always a great thing. It
prevents accidental global leakage, turns silent mistakes into errors,
and removes `with` and `arguments.callee` and their sordid
complexities. It's mostly a Good Thing.Unfortunately, it also removes octal literals, which is kind of a
bummer. You can pass octal strings to Node's functions that deal with
file modes, and they'll do the right thing, so it's not completely
horrible.The implementation works by patching Node's internal `module.wrapper`
array, and then freezing it, so that further modifications are not
possible.This means that error printouts that occur on the first line of a node
module will be off by a few characters, since Node does a bit of math
to account for its wrapper script, which will now be off by 13
characters. This is probably not a big problem, and not really worth
working around.Also, this means that the *current* module will not be affected. You
should still `"use strict"` in the module that does
`require('use-strict')`. This module applies strictness to all
*future* modules loaded by your program.**Note** You can also run `node --use_strict` and get the same effect
without any of the caveats.