Check if the input file is outdated.
        
        The difficulty with the default implementation is that any file that is
        `require`d from the entry-point file will not trigger a recompile if it
        is modified. This overloaded version of the method corrects this by generating
        a list of all required files that are also a part of the storage manifest
        and checking if they've been modified since the last compile.
        
        The command used to generate the list of dependencies is the same as the compile
        command but uses the `--list` option instead of `--outfile`.
        
        WARNING: It seems to me that just generating the dependencies may take just
        as long as actually compiling, which would mean we would be better off just
        forcing a compile every time.

def is_outdated(self, infile, outfile):
        """Check if the input file is outdated.
        
        The difficulty with the default implementation is that any file that is
        `require`d from the entry-point file will not trigger a recompile if it
        is modified. This overloaded version of the method corrects this by generating
        a list of all required files that are also a part of the storage manifest
        and checking if they've been modified since the last compile.
        
        The command used to generate the list of dependencies is the same as the compile
        command but uses the `--list` option instead of `--outfile`.
        
        WARNING: It seems to me that just generating the dependencies may take just
        as long as actually compiling, which would mean we would be better off just
        forcing a compile every time.
        """
        
        # Preliminary check for simply missing file or modified entry-point file.
        if super(BrowserifyCompiler, self).is_outdated(infile, outfile):
            return True
        
        # Otherwise we need to see what dependencies there are now, and if they're modified.
        tool, args, env = self._get_cmd_parts()
        cmd = [tool] + args + ['--list', infile]
        if self.verbose:
            print("is_outdated command:", cmd, env)
        dep_list = self.simple_execute_command(cmd, env=env)
        if self.verbose:
            print("dep_list is:", dep_list)
        for dep_file in dep_list.strip().split('\n'):
            if super(BrowserifyCompiler, self).is_outdated(dep_file, outfile):
                if self.verbose:
                    print("Found dep_file \"%s\" updated." % dep_file)
                return True
        
        return False