在项目中尝试使用.mtl文件 . 为此,我添加了第三方库'three-mtl-loader' . 但是文件没有解决 . 项目使用react.js作为前端,并希望制作可视化3d对象的组件 . 用于那三个.js,react-three-renderer . 我从mtl loader开始,但需要obj加载器,但认为这将是相同的 . 有任何想法吗 .

这是错误:

Module build failed: Error: Final loader didn't return a Buffer or String
at runLoaders (/home/vonrepiks/eternity/node_modules/webpack/lib/NormalModule.js:201:46)
at /home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:370:3
at iterateNormalLoaders (/home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:211:10)
at iterateNormalLoaders (/home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:218:10)
at /home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:233:3
at runSyncOrAsync (/home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:124:12)
at iterateNormalLoaders (/home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:229:2)
at Array.<anonymous> (/home/vonrepiks/eternity/node_modules/loader-runner/lib/LoaderRunner.js:202:4)
at Storage.finished (/home/vonrepiks/eternity/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:40:15)
at /home/vonrepiks/eternity/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:77:9
at /home/vonrepiks/eternity/node_modules/graceful-fs/graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)

@ ./app/javascript/components ^ . / . * $ @ ./app/javascript/packs/application.js

这是装载机:

module.exports = { 
   test: /\.mtl$/,
   loader: 'three-mtl-loader',
 };

这是web.config:

const webpack = require('webpack')
const { basename, dirname, join, relative, resolve } = require('path')
const { sync } = require('glob')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const ManifestPlugin = require('webpack-manifest-plugin')
const extname = require('path-complete-extname')
const { env, paths, publicPath, loadersDir } = 
require('./configuration.js')

const extensionGlob = `**/*{${paths.extensions.join(',')}}*`
const packPaths = sync(join(paths.source, paths.entry, extensionGlob))

module.exports = {
  entry: packPaths.reduce(
    (map, entry) => {
      const localMap = map
      const namespace = relative(join(paths.source, paths.entry), 
      dirname(entry))
      localMap[join(namespace, basename(entry, extname(entry)))] = 
      resolve(entry)
      return localMap
    }, {}
  ),

  output: {
    filename: '[name].js',
    path: resolve(paths.output, paths.entry),
    publicPath
  },

  module: {
    rules: sync(join(loadersDir, '*.js')).map(loader => 
    require(loader))
  },

  plugins: [
    new webpack.EnvironmentPlugin(JSON.parse(JSON.stringify(env))),
    new ExtractTextPlugin(env.NODE_ENV === 'production' ? '[name]-
    [hash].css' : '[name].css'),
    new ManifestPlugin({ fileName: paths.manifest, publicPath, 
    writeToFileEmit: true })
  ],

  resolve: {
    extensions: paths.extensions,
    modules: [
      resolve(paths.source),
      resolve(paths.node_modules)
    ]
  },

  resolveLoader: {
    modules: [paths.node_modules, paths.source],
  }
}