connect-inject
connect middleware for adding any script to the response, this is a forked version of connect-livereload.
This is a slightly modified version of connect-livereload all the credits go to the author.
For further documentation refer to the author's repo connect-livereload.
install
npm install connect-inject --save-dev
git clone https://github.com/danielhq/connect-inject.git
use
this middleware can be used to inject any sort of content into the webpage e.g. [Livereload, Weinre etc]
connect/express example
app.use(require('connect-inject')({
snippet: "<script>alert('hello world');</script>"
}));
options
Options are not mandatory: app.use(require('connect-inject')());
The Options have to be provided when the middleware is loaded:
e.g.:
app.use(require('connect-inject')({
snippet: "<script>alert('hello world');</script>",
ignore: ['.js', '.svg']
}));
These are the available options with the following defaults:
ignore: ['.js', '.css', '.svg', '.ico', '.woff', '.png', '.jpg', '.jpeg'],
html: function (str) {
return /<[:_-\w\s\!\/\=\"\']+>/i.test(str);
},
rules: [{
match: /<\/body>/,
fn: prepend
}, {
match: /<\/html>/,
fn: prepend
}, {
match: /<\!DOCTYPE.+>/,
fn: append
}],
snippet: "<script>alert('hello world');</script>"
grunt example
The following example is from an actual Gruntfile that uses grunt-contrib-connect
connect: {
options: {
port: 3000,
hostname: 'localhost'
},
dev: {
options: {
middleware: function (connect) {
return [
require('connect-inject')({ snippet: "<script>alert('hello world');</script>"}),
mountFolder(connect, '.tmp'),
mountFolder(connect, 'app')
];
}
}
}
}
For use as middleware in grunt simply add the following to the top of your array of middleware.
require('connect-inject')(),
You can pass in options to this call if you do not want the defaults.
dev
is simply the name of the server being used with the task grunt connect:dev
. The other items in the middleware
array are all functions that either are of the form function (req, res, next)
like checkForDownload
or return that like mountFolder(connect, 'something')
.
credits
This is a slightly modified version of connect-livereload all the credits go to the author.
license
MIT License