首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Physijs-webpack图书馆因需要而失败

Physijs-webpack图书馆因需要而失败
EN

Stack Overflow用户
提问于 2017-08-19 19:10:51
回答 2查看 389关注 0票数 2

在web应用程序中,我已经有一些声明为"require“并被webpack理解的包:

  • 三轨控制

我就是这样用它的:

代码语言:javascript
复制
var THREE = require('three');

var OrbitControls = require('three-orbit-controls')(THREE);

为了增加物理,我试着增加图书馆的生理-webpack:

代码语言:javascript
复制
var PhysiJS = require('physijs-webpack')(THREE);

"npm运行建设“失败:模块未找到:错误:不能解决‘物理-webpack’

在控制台(Chrome dev tools)中,会显示以下错误:

代码语言:javascript
复制
"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)"

这是我的webpack.config文件:

代码语言:javascript
复制
var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: './src/js/app.js',
    devtool: 'inline-source-map',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js',
        publicPath: '/dist'
    }
};

依赖关系是:

代码语言:javascript
复制
    "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"
    }
}

你能告诉我,我做错什么了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-24 21:59:43

tl;dr -您一直在使用由其他人发布的坏版本。使用v0.1.0或更高版本,并阅读https://github.com/agilgur5/physijs-webpack/的说明

你好,我是存储库的创造者。

根据自述的旧版本和这个Twitter线程,我的端口一直在进行中,直到2018年9月,我决定再试一次。有人在没有告诉我的情况下就把我的回购报告发布给了NPM,所以你最初在NPM上找到的包已经坏了。

2018年9月,我重写了大部分回购程序,并设法想出了一种让它开始工作的方法。当时,我要求人们通过agilgur5/physijs-webpack安装,因为我没有对NPM软件包的控制。那个月的晚些时候,我被授予了包的控制权,现在我已经发布了一个版本0.1.0和v0.1.1,这些版本的构建都很成功。现在,您可以通过physijs-webpack进行安装,并按照软件包或回购程序的指示进行安装--也就是将worker-loader安装为devDependency

旧的,不工作的NPM版本(v0.0.2)也将在短期内被取消,以避免像这样的混乱。

你的Webpack配置:

这里的另一个答案是更新Webpack配置,但这是不正确的和无关的(它甚至没有一个.worker.js扩展)。实际上,physijs-webpack专门并有意地使用在线装载机,这样您就完全不必更新webpack配置了。

关于physijs国家预防机制一揽子计划:

我还注意到你的physijs在你的package.json中-- NPM包是由同一个人创建的,是physijs-webpack的复制。它在2018年9月未发表,与此同时,我获得了physijs-webpack国家预防机制一揽子计划的所有权。

关于three集成:

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

票数 0
EN

Stack Overflow用户

发布于 2018-10-15 20:12:36

我遇到并解决了这个问题,通过跟踪webpack的详细信息找到@ https://github.com/agilgur5/physijs-webpack

基本上..。

代码语言:javascript
复制
npm install -S agilgur5/physijs-webpack

代码语言:javascript
复制
npm install -D worker-loader

我还要更新我的webpack配置

代码语言:javascript
复制
// webpack.config.js
{
  module: {
    rules: [
      {
        test: /\.worker\.js$/,
        use: { loader: 'worker-loader' }
      }
    ]
  }
}

参考资料:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45775404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档