让Cesium与Webpacker和Rails一起使用

时间:2017-12-14 01:36:01

标签: ruby-on-rails webpack cesium webpacker

我试图跟随these instructions使用Webpack将cesium添加到我的rails项目中,但我无法弄清楚如何翻译指令以使用Webpack的rails实现。

例如:

  

在webpack.config.js中,我们在配置对象上面添加以下内容:

     

// Cesium源代码的路径

     

const cesiumSource =' node_modules / cesium / Source';

     

const cesiumWorkers =' ../ Build / Cesium / Workers';

我假设在rails项目中我们会在app/javascript/packs/application.js中执行我们的文件导入,如下所示:

import 'cesium/Source';
import 'cesium/Build/Cesium/Workers';

但是会出错:

Failed to compile.

./app/javascript/packs/application.js
Module not found: Error: Can't resolve 'cesium/Build/Cesium/Workers' in '/Users/user/Developer/appName/app/javascript/packs'
 @ ./app/javascript/packs/application.js 15:0-37
 @ multi (webpack)-dev-server/client?http://localhost:3035 ./app/javascript/packs/application.js

我已经双重检查,路径正确。

Cesium说明还表明我需要添加一些配置选项,但是由于rails webpacker gem没有webpack.config.js文件,我无法弄清楚我会把它放在哪里。我只是将配置添加到与导入相同的文件中吗?

1 个答案:

答案 0 :(得分:0)

您宁愿添加一个新的配置文件来解析您的libs自定义路径。 您可以从Webpacker文档中获得启发: https://github.com/rails/webpacker/blob/master/docs/webpack.md#configuration

您可以这样做:

//config/webpack/cesium.js
module.exports = {
  resolve: {
    alias: {
      cesiumSource: 'cesium/Source',
      cesiumWorkers: 'cesium/Build/Cesium/Workers'
    }
  }
}

然后将配置选项合并到environment.js(全局)或development | test | production.js中(如果特定于特定环境)

// config/webpack/environment.js
const { environment } = require('@rails/webpacker')
const cesiumConfig = require('./cesium')
environment.config.merge(cesiumConfig)

希望此帮助。 问候