我希望在Sails v0.11中将/node_modules/es6-shim/es6-shim.min.js
包含在客户端。
我已经尝试将其包含在管道中:
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'
];
这可能吗?我真的不想使用凉亭或CDN,我想通过npm安装/更新依赖。
答案 0 :(得分:2)
实现此目的的最简单方法是单独保留pipeline.js
文件,只需在assets/js
内部指向您想要的文件的符号链接,例如:
ln -s ../../node_modules/es6-shim/es6-shim.min.js assets/js/es6-shim.min.js
下次运行sails lift
时,Grunt会在assets/js
文件夹中看到新的Javascript文件,并与其他文件一起处理。
如果由于某种原因这不是一个选项,您需要在tasks/copy.js
Grunt任务中添加新的子任务:
dev_es6: {
files: [{
expand: true,
src: ['./node_modules/es6-shim/es6-shim.min.js'],
dest: '.tmp/public/js'
}]
}
然后将其添加到compileAssets
中的tasks/register/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'
]);
};