J'essaie d'obtenir grunt-browserfy travailler avec le chemin relatif pour coffeescript mais j'ai toujours un message d'erreur lorsque j'essaie de construire mes sources:
>> Error: module "src/app/utils/includeMixin" not found from "/[ABSOLUTE-PATH-TO-MY-PROJECT]/project/src/app/app-audit.coffee"
J'ai ma hiérarchie de fichiers présentée comme ceci:
project |- build | |- libs.js | |- audit.js |- src |- app |- app-audit.coffee |- utils |- includeMixin.coffee |- vendor |- node_modules |- gruntfile.coffee
J'utilise grunt-browserify avec le plugin remapify, je me permets de transformer mes sources.
J'utilise aussi le grunt-browserifyBower pour construire mes libs, mais celui-ci fonctionne comme un charme.
Voici un exemple de mon gruntfile.coffee:
#Init grunt module module.exports = (grunt) -> 'use strict'; remapify = require 'remapify' #Init Configuration grunt.initConfig browserify: dev: files: "build/audit.js": ["src/app/app-audit.coffee"] options: browserifyOptions: extensions: ['.coffee'] bundleOptions: debug: true preBundleCB: (b) -> b.plugin remapify, [{ src: 'src/**/*.*' expose: 'src' cwd: __dirname }] transform: ["coffeeify"] browserifyBower: app: options: file: 'build/libs.js'
Un exemple de mon app -audit.coffee
# ## Description # This file Manage the application's # modules dependencies and instanciations 'use strict'; # ## Dependencies # * Backbone Mixin includer # (TODO : Link to the doc) uIncludeMixin = require "src/app/utils/includeMixin"
Et un exemple de mon café inclusMixin.
module.export = (mixins...) -> throw('include(mixins...) requires at least one mixin') unless mixins and mixins.length > 0 for mixin in mixins for own key, value of mixin this::[key] = value included = mixin.included included.apply(this) if included this
Merci beaucoup pour toute aide.
Le problème vient du chemin à refaire:
preBundleCB: (b) -> b.plugin remapify, [{ src: 'src/**/*.*' expose: 'src' cwd: __dirname }]
Doit être :
preBundleCB: (b) -> b.plugin remapify, [{ src: './**/*.*' expose: 'src' cwd: __dirname + "/src" }]