【问题标题】:Getting Cesium to work with Webpacker and Rails让 Cesium 与 Webpacker 和 Rails 一起工作
【发布时间】:2017-12-14 01:36:00
【问题描述】:

我正在尝试关注these instructions 将 cesium 添加到使用 Webpack 的 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 文件。我只是将配置添加到与导入相同的文件中吗?

【问题讨论】:

    标签: ruby-on-rails webpack cesium webpacker


    【解决方案1】:

    您宁愿添加一个新的配置文件来解析您的库自定义路径。 你可以从这里的 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)
    

    希望对您有所帮助。 问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 2013-11-08
      • 2010-09-11
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多