Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack Physijs网页包库因需要而失败_Webpack_Physijs - Fatal编程技术网

Webpack Physijs网页包库因需要而失败

Webpack Physijs网页包库因需要而失败,webpack,physijs,Webpack,Physijs,在web应用程序中,我已经用“require”声明了一些包,并且webpack可以理解这些包: 三 三轨道控制 我就是这样使用它的: var THREE = require('three'); var OrbitControls = require('three-orbit-controls')(THREE); 要添加物理,我尝试添加library physijs网页: var PhysiJS = require('physijs-webpack')(THREE); 在“npm运行构建

在web应用程序中,我已经用“require”声明了一些包,并且webpack可以理解这些包:

  • 三轨道控制
我就是这样使用它的:

var THREE = require('three');

var OrbitControls = require('three-orbit-controls')(THREE);
要添加物理,我尝试添加library physijs网页:

var PhysiJS = require('physijs-webpack')(THREE);
在“npm运行构建”时失败,说明: 未找到模块:错误:无法解析“physijs网页包”

在控制台(Chrome开发工具)中显示以下错误:

"app.js:17 Uncaught Error: Cannot find module "physijs-webpack"
    at webpackMissingModule (app.js:17)
    at Object.defineProperty.value (app.js:17)
    at __webpack_require__ (bootstrap 460ca68f8e6f1e90ea58:19)
    at Object.<anonymous> (html5-entities.js:190)
    at __webpack_require__ (bootstrap 460ca68f8e6f1e90ea58:19)
    at module.exports.ctor.super_ (bootstrap 460ca68f8e6f1e90ea58:62)"
依赖项包括:

    "devDependencies": {
        "script-loader": "^0.7.0",
        "webpack": "^3.5.4",
        "webpack-dev-server": "^2.7.1",
        "yarn": "^0.27.5"
    },
    "dependencies": {
        "physijs": "^0.0.4",
        "physijs-webpack": "^0.0.2",
        "requirejs": "^2.3.4",
        "three": "^0.86.0",
        "three-orbit-controls": "^82.1.0"
    }
}

请您推荐一下,我做错了什么?

我遇到了这个问题,并按照找到的网页详细信息解决了这个问题@

基本上

npm install -S agilgur5/physijs-webpack

我还必须更新我的网页配置

// webpack.config.js
{
  module: {
    rules: [
      {
        test: /\.worker\.js$/,
        use: { loader: 'worker-loader' }
      }
    ]
  }
}
参考资料:


    • tl;dr-您使用的是其他人发布的已损坏的版本。使用
      v0.1.0
      或更高版本,阅读以下说明:


      大家好,我是世界的创造者

      根据an的说法,我的港口一直在进行中,直到2018年9月,我决定再次试一试。其他人在没有告诉我的情况下发布了我的回购协议,其中NPM的构建已损坏,因此您最初在NPM上找到的包已损坏

      2018年9月,我改写了回购协议的大部分内容,并设法找到了使其生效的方法。当时,我要求人们通过
      agilgur5/physijs webpack
      安装,因为我无法控制NPM包。那个月晚些时候,我被授予了软件包的控制权,现在我发布了一个v0.1.0和v0.1.1版本,这两个版本都有一个成功的工作版本。现在,您可以通过
      physijs webpack
      进行安装,并按照软件包或repo的说明进行操作——也就是说,也可以将
      worker loader
      安装为
      devDependency

      旧的、不工作的NPM版本(v0.0.2)也将很快取消发布,以避免类似的混淆


      在您的网页包配置中:

      这里的另一个答案是更新你的网页配置,但这是不正确的(甚至没有
      .worker.js
      扩展名)
      physijs webpack
      实际上专门有意地使用了,这样您就不必更新您的webpack配置


      physijs
      NPM包上:

      我还注意到您的
      包中有
      physijs
      ——该NPM包是由同一个人创建的,是
      physijs网页包的副本。它于2018年9月未出版,同时我被授予了
      physijs网页包的所有权


      三个集成上:


      我注意到的另一件事是
      three
      在您的
      package.json
      中。虽然这对于早期的非工作版本是必需的,但在当前的工作版本中,它现在是一个
      对等依赖项
      。您不再需要将
      THREE
      作为参数传递,但仍然需要安装它,因为大多数PhysiJS的使用都要求您使用THREE。它也被固定在三个版本的
      r73
      上,因为这是PhysiJS支持/兼容的最后一个版本。

      您好,根据我的回答,您不需要更新您的网页配置
      physijs webpack
      实际上使用了一个内嵌加载程序来实现这一目的:因此用户无需更改其配置。此外,库中的worker文件甚至没有扩展名
      .worker.js
      ,因此您编写的规则甚至不会应用于它(因此对它的工作没有影响)。谢谢你在我有机会看到它之前回答了这个问题!
      npm install -D worker-loader
      
      // webpack.config.js
      {
        module: {
          rules: [
            {
              test: /\.worker\.js$/,
              use: { loader: 'worker-loader' }
            }
          ]
        }
      }