包含 JS 和 CSS 文件的自定义目录

Custom directory to include JS and CSS files

我从 themeforest 得到了一个主题,它有一个 plugins/ 目录,里面有 20-30 个目录,里面有 js/css/ 文件夹。

所以我需要在默认 sails js/styles/ 之外创建一个名为 plugins/ 的文件夹,然后将其包含在 grunt 构建中。

我试图复制通常的 jsFilesToInject 并用这个复制它:

var plugInJSFilesToInject = [
   // All of the rest of your client-side js files
   // will be injected here in no particular order.
   'plugins/**/*.js'
];

然后在 sails-linker:devJs 中指定它,如下所示:

devJs: {
        options: {
                startTag: '<!--SCRIPTS-->',
                endTag: '<!--SCRIPTS END-->',
                fileTmpl: '<script src="%s"></script>',
                appRoot: '.tmp/public'
        },
        files: {
                '.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
                'views/**/*.html': require('../pipeline').jsFilesToInject,
                'views/**/*.ejs': require('../pipeline').jsFilesToInject,
                '.tmp/public/**/*.html': require('../pipeline').plugInJSFilesToInject,
                'views/**/*.html': require('../pipeline').plugInJSFilesToInject,
                'views/**/*.ejs': require('../pipeline').plugInJSFilesToInject
        }
},

并在 运行 sails lift:

时收到此错误
------------------------------------------------------------------------
Aborted due to warnings.
Running "sails-linker:devJs" (sails-linker) task
Warning: Cannot read property 'indexOf' of undefined

对于 css/ 目录也需要这样做,这就是为什么我肯定需要将它放在 js/styles 目录之外。

我最后只是将 plugins/ 放在同一个 jsFilesToInject 数组中,因为没有理由不能放在那里:

var plugInJSFilesToInject = [
  // All of the rest of your client-side js files
  // will be injected here in no particular order.
  'js/**/*.js',
   // Plugins go here
  'plugins/**/*.js'
];