Update: For anyone interested in using Brunch with AngularJS I've put together a seed project angular-brunch-seed
I'm using Brunch with AngularJS. AngularJS provides a module system so the need for importing file using commonJS / AMD is redundant. Is it possible to disable this feature for files in the /app
directory? Essentially I would like it to compile files unaltered like it does for the /vendor
directory.
So the preferred out come would be:
joinTo:
'js/app.js': /^app/
'js/vendor.js': /^vendor/
With both js/app.js
and js/vender.js
containing compile files from each respective folder, but neither wrapped.
Does anyone have any ideas?
UPDATE The syntax has changed from when @jcruz answer. Here's the way to do this now.
In the end I went with a modified version of @jcruz answer.
exports.config =
modules:
definition: false
wrapper: (path, data) ->
"""
(function() {
'use strict';
#{data}
}).call(this);\n\n
"""
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'js/app.js': /^app/
'js/vendor.js': /^vendor/
By default the "raw" wrapper does not include coffeescript's standard wrapper. By setting jsWrapper to:
wrapper: (path, data) ->
"""
(function() {
'use strict';
#{data}
}).call(this);
"""
files will be wrapped as expected.
This has changed to a module configuration now, as far as I can see: https://github.com/brunch/brunch/blob/stable/docs/config.md#modules
exports.config =
paths:
...
files:
...
modules:
wrapper: false
definition: false
The ability to disable the module wrapping was just recently added in https://github.com/brunch/brunch/commit/ec158cffd1b66d5db2093cf766000673aa0dd3a5
I dont believe the release w/ these features is on npm yet but you could just re-install brunch from the github repo
Once you do that Brunch, set jsWrapper to 'raw' in your config.coffee
Something like this...
exports.config =
jsWrapper: 'raw'
files:
javascripts:
defaultExtension: 'js'
joinTo:
'javascripts/app.js': /^app/
'javascripts/vendor.js': /^vendor/
'brunch b' and the wrapping code should disappear
As of (almost) 2017 Jan, it is imperative to declare npm enabled to false along with module settings. It took me a while to find out, though. (Found this via a GitHub issue). Hope this helps. Cheers.
Here is a working config file:
// See http://brunch.io for documentation.
module.exports = {
files: {
javascripts: {
joinTo: {
'/js/app.js': /^app/,
'/js/vendor.js': /^(?!app)/
}
},
stylesheets: {
joinTo: 'css/app.css'
}
},
paths: {
public: '/priv/static'
},
npm: {
enabled: false
},
modules: {
wrapper: false,
definition: false
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With