0

我正在尝试按照这些说明使用 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文件。我只是将配置添加到与导入相同的文件中吗?

4

1 回答 1

0

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

希望这有帮助。问候

于 2018-07-12T13:18:06.597 回答