openWRT界面开发

开发工具搭建

  至此,如果要进行开发,将面临如下问题:

  • 只能手动复制代码到虚拟机里的对应文件中,才可以看到运行结果,而且openWRT中自带的vim使用非常不方便;
  • 要维护本地和虚拟机内两份代码, 文件过多,容易造成混乱;

  为了解决上面的问题,在编译openWRT的时候, 已经选择安装了ftp服务器,这里就可以利用ftp自动同步,保证本地代码与虚拟机中的machine同步,实时看到运行结果。

  从虚拟机中将/usr/lib/lua/www拉到本地,建立如下文件目录,其中www目录是前端代码存放的地方,lua目录下我们基本上只需要关注luci目录;

app
   -- lua
   -- www
Gruntfile.js
package.json

  安装grunt-ftp-deploy, 按照官网配置ftp连接key,并配置Gruntfile:

watch: {
    luci: {
        files: ['<%= config.app %>lua/**/*'],
        tasks: ['ftp-deploy:luci']
    },
    www: {
        files: ['<%=config.app%>www/**/*'],
        tasks: ['ftp-deploy:www']
    }
},
'ftp-deploy': {
    luci: {
        auth: {
            // host: '192.168.115.136',
            host: '192.168.1.1',
            port: 21,
            authKey: 'key1',
            forceVerbose: false
        },
        src: '<%= config.app%>lua',
        dest: '<%= config.remote %>usr/lib/lua',
        exclusions: ['{,*/}.DS_Store', '{,*/}Thumbs.db', '{,*/}.svn'],
        keep: ['{,*/}*.so']
    },
    www: {
        auth: {
            // host: '192.168.115.136',
            host: '192.168.1.1',
            port: 21,
            authKey: 'key1',
            forceVerbose: false
        },
        src: '<%= config.app%>www',
        dest: '<%= config.remote %>www',
        exclusions:['<%=config.app%>www/luci-static/web/vendors/*','{,*/}.DS_Store', '{,*/}Thumbs.db', '{,*/}.svn']
    }
}

  每次运行grunt的watch task, 当有代码变动时,就会自动同步到虚拟机的machine中了;