Example of using JSHint to check for unused parameters in
a define()
block.
This is a quick example to answer How to exclude excess unusable dependencies while optimizing with requireJS? using a project created by yeoman using the requirejs generator.
To see the example check out the code and run npm and bower to download all the dependencies:
npm install
bower install
Then run grunt jshint
to generate the report. You should see the following
output:
grunt jshint
Running "jshint:gruntfile" (jshint) task
>> 1 file lint free.
Running "jshint:app" (jshint) task
app/main.js
6 |], function ($, _) {
^ '_' is defined but never used.
>> 1 error in 2 files
Warning: Task "jshint:app" failed. Use --force to continue.
Aborted due to warnings.
The JSHint rules will check for any unused parameters in the define()
block.
Instructions from the requirejs generator
You can run your app using grunt preview
. This will start a
server on localhost:8000
, meaning you can simply go to the
url localhost:8000/index.htm
while it's running.
If you'd like to run the compiled version, run
grunt preview-live
.
This application uses requirejs to load the various modules in the app folder. However, upon build, all of these files are concatenated and minified together to create a small, compressed javascript file.
Running grunt
by itself will run through all of the steps of
linting the javascript, building out dependencies and ultimately
creating /dist/require.js
.
There's just enough to in place to get you going. Go ahead
and make your changes to index.htm
. You'll start your
javascript work in app/main.js
by requiring your first
modules. Past that, well, the world is your oyster.
Note: you need phantomJS to run the tests.
The test directory uses qunit
, which is run using phantomJS
in the console, but can also be ran by launching the server
grunt preview
and going to localhost:8000/test/index.html
.
Create tests in the test/tests.js
file, where you can
require your modules and test their functionality.
Assuming you're already ran npm install
and bower install
,
the only pieces required to run the application in its built
state is running grunt
.
If you're using a webserver like apache or nginx, you'll want
to create a redirect from /components/requirejs/require.js
to
/dist/require.js
. (Note: this is exactly what grunt preview-live
does)