我试图跟随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
文件,我无法弄清楚我会把它放在哪里。我只是将配置添加到与导入相同的文件中吗?
答案 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)
希望此帮助。 问候