node.js - Rust&Wasm初始设置

标签 node.js npm webpack rust webassembly

我在使用rust创建Webassembly应用程序时遵循this tutorial,但是当我尝试使用node运行 bundle 的Web Assembly代码时(在添加任何我自己的代码之前以及完全按照本教程进行操作时)

$ npm run start
> create-wasm-app@0.1.0 start /Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www
> webpack-dev-server

/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/copy-webpack-plugin/node_modules/schema-utils/dist/validate.js:98
    throw new _ValidationError.default(errors, schema, configuration);
    ^

ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
 - options[0] should be an object:
   object { patterns, options? }
    at validate (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/copy-webpack-plugin/node_modules/schema-utils/dist/validate.js:98:11)
    at new CopyPlugin (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/copy-webpack-plugin/dist/index.js:32:30)
    at Object.<anonymous> (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/webpack.config.js:12:5)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at WEBPACK_OPTIONS (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/webpack-cli/bin/utils/convert-argv.js:114:13)
    at requireConfig (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/webpack-cli/bin/utils/convert-argv.js:116:6)
    at /Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/webpack-cli/bin/utils/convert-argv.js:123:17
    at Array.forEach (<anonymous>)
    at module.exports (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/webpack-cli/bin/utils/convert-argv.js:121:15)
    at Object.<anonymous> (/Users/jakearmendariz/Desktop/wasm/wasm-game-of-life/www/node_modules/webpack-dev-server/bin/webpack-dev-server.js:84:40)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! create-wasm-app@0.1.0 start: `webpack-dev-server`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the create-wasm-app@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jakearmendariz/.npm/_logs/2020-09-11T04_46_27_442Z-debug.log
webpack.config
const CopyWebpackPlugin = require("copy-webpack-plugin");
const path = require('path');

module.exports = {
  entry: "./bootstrap.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "bootstrap.js",
  },
  mode: "development",
  plugins: [
    new CopyWebpackPlugin(['index.html'])
  ],
};
package.json依赖项
  "dependencies": {
    "minimist": "^1.2.5",
    "wasm-game-of-life": "file:../pkg"
  },
  "devDependencies": {
    "copy-webpack-plugin": "^6.1.0",
    "hello-wasm-pack": "^0.1.0",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.11.0"
  }
我完全像以前一样重做了本教程,并且得到了相同的结果。我认为这与我的npm设置有关,但我不确定。

最佳答案

由于安全警报,我从教程文件中指定的版本更新copy-webpack-plugin 的版本时,我遇到了类似的错误。配置参数的格式同时更改,因此我必须更改它们以使其匹配。
本教程具有"copy-webpack-plugin": "^5.0.3",我已升级到"copy-webpack-plugin": "^6.0.3",而在webpack.config.js中,我必须进行更改

    new CopyPlugin([
      path.resolve(__dirname, "static")
    ]),
    new CopyPlugin({
      patterns: [
        path.resolve(__dirname, "static")
      ]
    }),
除了通过您正在遵循的相同的rust-wasm教程之外,我对webpack或copy-webpack-plugin并不熟悉,因此使用此建议需要您自担风险;我只能说它似乎有效。

关于node.js - Rust&Wasm初始设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63840954/

相关文章:

reactjs - Webpack 在热重载我的 React 应用程序时出错

node.js - 类型错误 : Cannot read property '_id' of undefined in Angular4

javascript - 在独立脚本上运行的函数不适用于另一个脚本 Javascript、node.js

javascript - if 语句不能正常工作? JS

javascript - react 路由器|组件未渲染

webpack - [Vue警告] : Invalid component name after uglify

node.js - "/usr/bin/env node"在 Node 文件的开头到底做了什么?

javascript - MongoDB/ExpressJS -- 当 ObjectID 包含在变量中时,通过 _id 删除文档

node.js - 从 Github 启动克隆的 create-react-app

node.js - 无法使用 "npm install"在 Node.js 中安装任何包