【问题标题】:sails.js setup: How to make a node module available across the sails project (controller / model, etc)?sails.js 设置:如何使节点模块在sails 项目(控制器/模型等)中可用?
【发布时间】:2014-07-17 04:14:23
【问题描述】:

我刚刚开始使用 SailsJS 作为我在 Node.js 上的第一个 Web 框架。假设我想添加 MomentJS 并在整个应用程序中使用。如何设置?

【问题讨论】:

    标签: sails.js node-modules


    【解决方案1】:

    如果您尝试将 node_modules 包含到客户端,例如 jQuery、AngularJS 或各种字体库之一,那么您可以像往常一样 npm install 它们,但只是为了确保在您编辑的风帆中你的tasks/config/copy.js 并添加一个新块,例如:

    grunt.config.set('copy', {
        dev: {
            files: [{
                expand:true,
                cwd: './node_modules/font-awesome/fonts',
                src: ['**/*'],
                dest: '.tmp/public/fonts'
            }
        }
    });
    

    LESS 可以像平常一样被@imported,而不会被复制。其他资产将需要如上所述复制。如果您使用的是sails linker,请不要忘记将您的JS 路径也添加到tasks/pipeline.js(如果需要)。

    您可以在此处阅读更多内容: http://ash.zi.vc/sails/2016/02/02/including-client-side-node-modules-in-my-sails-application/

    如何将 npm 模块同步到 Web 可访问目录并不是很明显。

    【讨论】:

      【解决方案2】:

      SailsJS 与任何其他 NodeJS 应用程序没有什么不同。所以在你的(比如说)Controller.js 文件之上,你做

      var m = require("moment");
      

      你可以走了。 @mdunisch 的方法显然可以让您在整个应用程序中使用 moment 包,而无需在每个文件中执行“require”。

      【讨论】:

        【解决方案3】:

        您可以使用 bootstrap.js(在 config/ 中)

        喜欢:

        module.exports.bootstrap = function (cb) {
          sails.moment = require('moment');
        
        cb();
        };
        

        在您可以使用的所有 Sails 文件中

        sails.moment() 
        

        现在。

        【讨论】:

        • 别忘了运行npm install moment --save
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        • 2016-07-08
        • 1970-01-01
        • 2020-05-28
        • 2015-09-24
        • 1970-01-01
        相关资源
        最近更新 更多