2016-01-23 56 views
0

我希望將/node_modules/es6-shim/es6-shim.min.js包含在Sails v0.11的客戶端中。將節點模塊包含爲要注入的文件

我試過,包括入管道這樣:

var jsFilesToInject = [ 

// Load sails.io before everything else 
'js/dependencies/sails.io.js', 

/* INCLUDE NODE MODULE */ 
'/node_modules/es6-shim/es6-shim.min.js', 

// Dependencies like jQuery, or Angular are brought in here 
'js/dependencies/**/*.js', 

// All of the rest of your client-side js files 
// will be injected here in no particular order. 
'js/**/*.js', 

// Use the "exclude" operator to ignore files 
// '!js/ignore/these/files/*.js' 
]; 

這可能嗎?我真的不想使用bower或CDN,我想通過npm安裝/更新依賴關係。

+0

顯示文件結構的佈局會使這個問題更容易回答。 –

回答

1

來完成,這將是獨自離開pipeline.js文件,只是做一個符號鏈接assets/js指向內到你想要的文件,例如,最簡單的方法:在運行sails lift,咕嚕會

ln -s ../../node_modules/es6-shim/es6-shim.min.js assets/js/es6-shim.min.js 

下一次請在您的assets/js文件夾中查看新的Javascript文件,並與其他文件一起處理。

如果這是由於某種原因不是一種選擇,你需要一個新的子任務添加到tasks/copy.js步兵的任務:在tasks/register/compileAssets

dev_es6: { 
     files: [{ 
      expand: true, 
      src: ['./node_modules/es6-shim/es6-shim.min.js'], 
      dest: '.tmp/public/js' 
     }] 
    } 

,然後添加到compileAssets任務:

module.exports = function (grunt) { 
    grunt.registerTask('compileAssets', [ 
     'clean:dev', 
     'jst:dev', 
     'less:dev', 
     'copy:dev', 
     'copy:dev_es6', // <-- adding our new subtask 
     'coffee:dev' 
    ]); 
}; 
+0

in copy.js,你應該包含'flatten:true'或者文件的URL是'http:// example.com/js/node_modules/es6-shim/es6-shim.min.js' – Andrew