123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557 |
- /**
- * @module BrowserSync.options
- */
- module.exports = {
- /**
- * Browsersync includes a user-interface that is accessed via a separate port.
- * The UI allows to controls all devices, push sync updates and much more.
- * @property ui
- * @type Object
- * @param {Number} [port=3001]
- * @since 2.0.0
- * @default false
- */
- ui: {
- port: 3001
- },
- /**
- * Browsersync can watch your files as you work. Changes you make will either
- * be injected into the page (CSS & images) or will cause all browsers to do
- * a full-page refresh.
- * @property files
- * @type Array|String
- * @default false
- */
- files: false,
- /**
- * Specify which file events to respond to.
- * Available events: `add`, `change`, `unlink`, `addDir`, `unlinkDir`
- * @property watchEvents
- * @type Array
- * @default ["change"]
- * @since 2.18.8
- */
- watchEvents: ["change"],
- /**
- * Watch files automatically - this should be used as an
- * alternative to the `files` option. When this option is used, some directories
- * will be ignored automatically such as `node_modules` `bower_components` `.sass-cache`
- * `.vscode` `.git` `.idea`
- *
- * @property watch
- * @type Boolean
- * @default false
- * @since 2.23.0
- */
- watch: false,
- /**
- * Patterns for any watchers to ignore. Anything provided here
- * will end up inside `watchOptions.ignored`
- * @property ignore
- * @type Array
- * @default []
- * @since 2.23.0
- */
- ignore: [],
- /**
- * Serve an index.html file for all non-asset routes. Useful
- * when using client-routers
- * @property single
- * @type Boolean
- * @default false
- * @since 2.23.0
- */
- single: false,
- /**
- * File watching options that get passed along to [Chokidar](https://github.com/paulmillr/chokidar).
- * Check their docs for available options
- * @property watchOptions
- * @type Object
- * @default undefined
- * @since 2.6.0
- */
- watchOptions: {
- ignoreInitial: true
- /*
- persistent: true,
- ignored: '*.txt',
- followSymlinks: true,
- cwd: '.',
- usePolling: true,
- alwaysStat: false,
- depth: undefined,
- interval: 100,
- ignorePermissionErrors: false,
- atomic: true
- */
- },
- /**
- * Use the built-in static server for basic HTML/JS/CSS websites.
- * @property server
- * @type Object|Boolean
- * @default false
- */
- server: false,
- /**
- * Proxy an EXISTING vhost. Browsersync will wrap your vhost with a proxy URL to view your site.
- * @property proxy
- * @type String|Object|Boolean
- * @param {String} [target]
- * @param {Boolean} [ws] - Enable websocket proxying
- * @param {Function|Array} [middleware]
- * @param {Function} [reqHeaders]
- * @param {Array} [proxyReq]
- * @param {Array} [proxyRes]
- * @default false
- */
- proxy: false,
- /**
- * @property port
- * @type Number
- * @default 3000
- */
- port: 3000,
- /**
- * @property middleware
- * @type Function|Array
- * @default false
- */
- middleware: false,
- /**
- * Add additional directories from which static
- * files should be served. Should only be used in `proxy` or `snippet`
- * mode.
- * @property serveStatic
- * @type Array
- * @default []
- * @since 2.8.0
- */
- serveStatic: [],
- /**
- * Options that are passed to the serve-static middleware
- * when you use the string[] syntax: eg: `serveStatic: ['./app']`. Please see
- * [serve-static](https://github.com/expressjs/serve-static) for details
- *
- * @property serveStaticOptions
- * @type Object
- * @since 2.17.0
- */
- /**
- * Enable https for localhost development. **Note** - this is not needed for proxy
- * option as it will be inferred from your target url.
- * @property https
- * @type Boolean
- * @default undefined
- * @since 1.3.0
- */
- /**
- * Override http module to allow using 3rd party server modules (such as http2)
- * *Note*: these modules are not included in the Browsersync package - you need
- * to 'npm install' any that you'd like to use.
- * @property httpModule
- * @type string
- * @default undefined
- * @since 2.18.0
- */
- /**
- * Current working directory
- * @property cwd
- * @type String
- * @since 2.23.0
- */
- /**
- * Register callbacks via a regular option - this can be used
- * to get access the Browsersync instance in situations where you
- * cannot provide a callback via the normal API (for example, in a Gruntfile)
- *
- * **Note**: Only the `ready` callback is currently supported here.
- *
- * @property callbacks
- * @type Object
- * @param {Function} ready
- */
- /**
- * Clicks, Scrolls & Form inputs on any device will be mirrored to all others.
- * @property ghostMode
- * @param {Boolean} [clicks=true]
- * @param {Boolean} [scroll=true]
- * @param {Boolean} [location=true]
- * @param {Boolean} [forms=true]
- * @param {Boolean} [forms.submit=true]
- * @param {Boolean} [forms.inputs=true]
- * @param {Boolean} [forms.toggles=true]
- * @type Object
- */
- ghostMode: {
- clicks: true,
- scroll: true,
- location: true,
- forms: {
- submit: true,
- inputs: true,
- toggles: true
- }
- },
- /**
- * Can be either "info", "debug", "warn", or "silent"
- * @property logLevel
- * @type String
- * @default info
- */
- logLevel: "info",
- /**
- * Change the console logging prefix. Useful if you're creating your
- * own project based on Browsersync
- * @property logPrefix
- * @type String
- * @default Browsersync
- * @since 1.5.1
- */
- logPrefix: "Browsersync",
- /**
- * @property logConnections
- * @type Boolean
- * @default false
- */
- logConnections: false,
- /**
- * @property logFileChanges
- * @type Boolean
- * @default true
- */
- logFileChanges: true,
- /**
- * Log the snippet to the console when you're in snippet mode (no proxy/server)
- * @property logSnippet
- * @type: Boolean
- * @default true
- * @since 1.5.2
- */
- logSnippet: true,
- /**
- * You can prevent Browsersync from injecting the connection snippet
- * by passing `snippet: false`.
- * @property snippet
- * @type Boolean
- * @default undefined
- */
- /**
- * You can control how the snippet is injected
- * onto each page via a custom regex + function.
- * You can also provide patterns for certain urls
- * that should be ignored from the snippet injection.
- * @property snippetOptions
- * @since 2.0.0
- * @param {Boolean} [async] - should the script tags have the async attribute?
- * @param {Array} [blacklist]
- * @param {Array} [whitelist]
- * @param {RegExp} [rule.match=/$/]
- * @param {Function} [rule.fn=Function]
- * @type Object
- */
- snippetOptions: {
- async: true,
- whitelist: [],
- blacklist: [],
- rule: {
- match: /<body[^>]*>/i,
- fn: function (snippet, match) {
- return match + snippet;
- }
- }
- },
- /**
- * Add additional HTML rewriting rules.
- * @property rewriteRules
- * @since 2.4.0
- * @type Array
- * @default false
- */
- rewriteRules: [],
- /**
- * @property tunnel
- * @type String|Boolean
- * @default null
- */
- /**
- * Some features of Browsersync (such as `xip` & `tunnel`) require an internet connection, but if you're
- * working offline, you can reduce start-up time by setting this option to `false`
- * @property online
- * @type Boolean
- * @default undefined
- */
- /**
- * Decide which URL to open automatically when Browsersync starts. Defaults to "local" if none set.
- * Can be `true`, `local`, `external`, `ui`, `ui-external`, `tunnel` or `false`
- * @property open
- * @type Boolean|String
- * @default true
- */
- open: "local",
- /**
- * @property browser
- * @type String|Array
- * @default default
- */
- browser: "default",
- /**
- * Add HTTP access control (CORS) headers to assets served by Browsersync.
- * @property cors
- * @type boolean
- * @default false
- * @since 2.16.0
- */
- cors: false,
- /**
- * Requires an internet connection - useful for services such as [Typekit](https://typekit.com/)
- * as it allows you to configure domains such as `*.xip.io` in your kit settings
- * @property xip
- * @type Boolean
- * @default false
- */
- xip: false,
- hostnameSuffix: false,
- /**
- * Reload each browser when Browsersync is restarted.
- * @property reloadOnRestart
- * @type Boolean
- * @default false
- */
- reloadOnRestart: false,
- /**
- * The small pop-over notifications in the browser are not always needed/wanted.
- * @property notify
- * @type Boolean
- * @default true
- */
- notify: true,
- /**
- * @property scrollProportionally
- * @type Boolean
- * @default true
- */
- scrollProportionally: true,
- /**
- * @property scrollThrottle
- * @type Number
- * @default 0
- */
- scrollThrottle: 0,
- /**
- * Decide which technique should be used to restore
- * scroll position following a reload.
- * Can be `window.name` or `cookie`
- * @property scrollRestoreTechnique
- * @type String
- * @default 'window.name'
- */
- scrollRestoreTechnique: "window.name",
- /**
- * Sync the scroll position of any element
- * on the page. Add any amount of CSS selectors
- * @property scrollElements
- * @type Array
- * @default []
- * @since 2.9.0
- */
- scrollElements: [],
- /**
- * Sync the scroll position of any element
- * on the page - where any scrolled element
- * will cause all others to match scroll position.
- * This is helpful when a breakpoint alters which element
- * is actually scrolling
- * @property scrollElementMapping
- * @type Array
- * @default []
- * @since 2.9.0
- */
- scrollElementMapping: [],
- /**
- * Time, in milliseconds, to wait before
- * instructing the browser to reload/inject following a
- * file change event
- * @property reloadDelay
- * @type Number
- * @default 0
- */
- reloadDelay: 0,
- /**
- * Wait for a specified window of event-silence before
- * sending any reload events.
- * @property reloadDebounce
- * @type Number
- * @default 0
- * @since 2.6.0
- */
- reloadDebounce: 500,
- /**
- * Emit only the first event during sequential time windows
- * of a specified duration.
- * @property reloadThrottle
- * @type Number
- * @default 0
- * @since 2.13.0
- */
- reloadThrottle: 0,
- /**
- * User provided plugins
- * @property plugins
- * @type Array
- * @default []
- * @since 2.6.0
- */
- plugins: [],
- /**
- * @property injectChanges
- * @type Boolean
- * @default true
- */
- injectChanges: true,
- /**
- * @property startPath
- * @type String|Null
- * @default null
- */
- startPath: null,
- /**
- * Whether to minify client script, or not.
- * @property minify
- * @type Boolean
- * @default true
- */
- minify: true,
- /**
- * @property host
- * @type String
- * @default null
- */
- host: null,
- /**
- * Specify a host to listen on. Use this if you want to
- * prevent binding to all interfaces.
- *
- * Note: When you specify this option, it overrides the 'host' option
- * @property listen
- * @type String
- * @default undefined
- */
- /**
- * Support environments where dynamic hostnames are not required
- * (ie: electron)
- * @property localOnly
- * @type Boolean
- * @default false
- * @since 2.14.0
- */
- localOnly: false,
- /**
- * @property codeSync
- * @type Boolean
- * @default true
- */
- codeSync: true,
- /**
- * @property timestamps
- * @type Boolean
- * @default true
- */
- timestamps: true,
- clientEvents: [
- "scroll",
- "scroll:element",
- "input:text",
- "input:toggles",
- "form:submit",
- "form:reset",
- "click"
- ],
- /**
- * Alter the script path for complete control over where the Browsersync
- * Javascript is served from. Whatever you return from this function
- * will be used as the script path.
- * @property scriptPath
- * @default undefined
- * @since 1.5.0
- * @type Function
- */
- /**
- * Configure the Socket.IO path and namespace & domain to avoid collisions.
- * @property socket
- * @param {String} [path="/browser-sync/socket.io"]
- * @param {String} [clientPath="/browser-sync"]
- * @param {String|Function} [namespace="/browser-sync"]
- * @param {String|Function} [domain=undefined]
- * @param {String|Function} [port=undefined]
- * @param {Object} [clients.heartbeatTimeout=5000]
- * @since 1.6.2
- * @type Object
- */
- socket: {
- socketIoOptions: {
- log: false
- },
- socketIoClientConfig: {
- reconnectionAttempts: 50
- },
- path: "/browser-sync/socket.io",
- clientPath: "/browser-sync",
- namespace: "/browser-sync",
- clients: {
- heartbeatTimeout: 5000
- }
- },
- /**
- * Configure the script domain
- * @property script
- * @param {String|Function} [domain=undefined]
- * @since 2.14.0
- * @type Object
- */
- tagNames: {
- less: "link",
- scss: "link",
- css: "link",
- jpg: "img",
- jpeg: "img",
- png: "img",
- svg: "img",
- gif: "img",
- js: "script"
- },
- injectFileTypes: ["css", "png", "jpg", "jpeg", "svg", "gif", "webp", "map"],
- injectNotification: false,
- excludedFileTypes: [
- "js",
- "css",
- "pdf",
- "map",
- "svg",
- "ico",
- "woff",
- "json",
- "eot",
- "ttf",
- "png",
- "jpg",
- "jpeg",
- "webp",
- "gif",
- "mp4",
- "mp3",
- "3gp",
- "ogg",
- "ogv",
- "webm",
- "m4a",
- "flv",
- "wmv",
- "avi",
- "swf",
- "scss"
- ]
- };
- //# sourceMappingURL=default-config.js.map
|