在angular cli app中使用vtk.js/glsl文件

dan*_*iel 7 angular-cli angular vtk.js

我尝试在我的angular cli应用程序中使用vtk.js并将vtk.js添加到我的angular-cli.json中.

ERROR in ./node_modules/vtk.js/Sources/Rendering/OpenGL/glsl/vtkVolumeVS.glsl
Module parse failed: Unexpected token (18:10)
You may need an appropriate loader to handle this file type....
Run Code Online (Sandbox Code Playgroud)

如何使用带角度cli的glsl加载器?

当然没有弹出角度cli.

All*_* lu 3

我在这里找到了解决方案。您不必弹出,因为 Angular 6 已禁用弹出功能。跟着文章走就行了,内容extra-webpack.config.js如下:

  module.exports = {
  module: {
    rules: [
      {
        test: /\.glsl$/i,
        include: /node_modules(\/|\\)vtk\.js(\/|\\)/,
        loader: 'shader-loader',
      },
      {
        test: /\.js$/,
        include: /node_modules(\/|\\)vtk\.js(\/|\\)/,
        loader: 'babel-loader?presets[]=env',
      },
      {
        test: /\.worker\.js$/,
        include: /node_modules(\/|\\)vtk\.js(\/|\\)/,
        use: [
          {
            loader: 'worker-loader',
            options: { inline: true, fallback: false },
          },
        ],
      },
    ],
  },
};
Run Code Online (Sandbox Code Playgroud)

当然,你必须安装依赖项vtk.jskw-web-suit. 然后应该可以编译成功。如果您在浏览器的开发者模式中遇到“global is not Defined”的错误,请添加(window as any).global = window;到 Angular 的polyfills.ts. 它适用于我的 Angular 6 和最新的 vtk.js。