【问题标题】:Nodemon in VM does not see changes when file edited from host machine从主机编辑文件时,VM 中的 Nodemon 看不到更改
【发布时间】:2016-03-23 14:42:34
【问题描述】:

我有一个node 应用程序,我使用nodemon 在虚拟机(Virtualbox、Vagrant、Ubuntu)中运行以用于开发目的。

文件位于vagrant的共享文件夹中。

当我在虚拟机中更改应用程序 js 文件时 - nodemon 重新启动节点应用程序。 但是当我从主机(Max OS X Yosemite)更改相同的文件时 - 应用程序不会重新启动。

在主机是 Windows 10 的类似情况下 - 它运行良好。

我通过 Grunt 使用配置启动 nodemon

module.exports = function (grunt) {

    var cfg = {

        pkg: grunt.file.readJSON('package.json'),

        nodemon: {
            dev: {
                script: 'src/server.js'
            },
            options: {
                nodeArgs: ['--harmony'],
                ext: 'js,json,hbs',
                ignore: [
                    'public/**',
                    'node_modules/**',
                    '.git/**'
                ]
            }
        }
    };

    grunt.initConfig(cfg);

    grunt.loadNpmTasks('grunt-nodemon');

    grunt.registerTask('default', ['nodemon']);

};

或者直接nodemon ./src/server.js localhost 3000

我错过了什么?

【问题讨论】:

  • nodemon 安装在哪里?
  • 安装在VM中:节点在dir /node,所以nodemon在/node/lib/node_modules/nodemon。如果从控制台执行,则可见:nodemon -v 结果:1.8.1
  • 作为一种解决方法,您可以尝试在主机上查看文件是否有更改,并找到远程重启服务器的方法:stackoverflow.com/questions/36995590/…

标签: javascript node.js gruntjs npm nodemon


【解决方案1】:

尝试在options 部分中将参数-L 用于nodemonGrunt 的配置参数legacyWatch: true

详情请见here

【讨论】:

  • -L 标志对我来说消耗了太多 CPU。
  • -L 标志是做什么的。或者什么是legacy watch
  • 如果您不想使用轮询,则需要考虑其他工具,例如专为 vagrant 设计的 github.com/AgentCosmic/xnotify
猜你喜欢
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 2014-11-06
  • 1970-01-01
  • 2017-09-01
相关资源
最近更新 更多