cesium编程中级(二)源码编译

cesium编程中级(二)源码编译

有些情况下,比如我们自己从Github下载了最新的代码,或者自己临时修改了一点代码,想要编译后的Build文件夹的内容,需要自行编译源码,这里介绍一下编译的方法

下载源码之后,可以发现根目录存在一个gulpfile.js文件,编译源码就是使用 gulp

编译的成果有四部分,
– 生成Apps文件夹,包括helloworld程序和沙盒Sandcastle
– 编译后的部署环境下的Cesium文件夹
– 编译后的调试环境下的Cesium文件夹
– API文档

  1. 解压,或者git clone源码之后,先执行
    cnpm install
    下载依赖包
    > cnpm安装请看cesium编程入门(二)环境搭建
  2. 安装gulp,(-g 表示全局安装,可选)
    cnpm install gulp -g
    //生成文档需要
    cnpm install jsdoc -g
    
  3. 执行命令
    • 生成Apps文件夹
      gulp buildApps
      

      这里会在Build下生成Apps文件夹,内容包括helloworld程序和沙盒Sandcastle

    • 部署环境下的Cesium文件夹
      gulp minifyRelease
      

      这里会在Build下生成Cesium文件夹

      说明:如果是git clone的,这一步没问题,如果是下载的官方包,这一步会报错

      [16:37:12] Error: ENOENT: no such file or directory, open 'D:\tt\Cesium-1.40\Apps\.jshintrc'
      [16:37:12] Error: ENOENT: no such file or directory, open 'D:\tt\Cesium-1.40\Apps\Sandcastle\.jshintrc'
      

      这里需要从github上将这两个文件下载并放到相应位置Apps.jshintrc,Apps\Sandcastle.jshintrc
      改名时如果遇到问题,就打开cmd执行类似命令

      copy .jshintrc.txt .jshintrc
      
    • 调试环境下的Cesium文件夹
      gulp
    • API文档
      jsdoc -c Tools/jsdoc/conf.json -d Build/Document
      >需要从github上下载Tools文件夹 地址
  4. 更简单的获取最新版本Cesium的方法
    cnpm install cesium
    

源码1.70 及以上无法编译的问题

报错 “No gulpfile found”

解决:将 gulpfile.cjs 改成 gulpfile.js

接着执行 gulp 报错 ” Error: ENOENT: no such file or directory, open ‘Apps.jshintrc’ “

解决:去官方git目录下对应文件下载,放到对应目录

接着执行 gulp 报错 ” Error: ENOENT: no such file or directory, open ‘Apps\Sandcastle.jshintrc’ “

解决: 同上一条

执行

gulp            // 默认编译  build/CesiumUnminified
gulp minify     // 编译      build/Cesium   

ps: 如果报错”require is not defined” 可以尝试将node版本降到 12.12 再编译

4 thoughts to “cesium编程中级(二)源码编译”

  1. 请问什么情况下需要自行编译源码?自己修改了代码的内容,只能在本地引用的时候,可以实现想要的,可是生产环境还是会下载官网的代码放在node-modules里面。

发表评论