Webpack 在我的 node.js 项目中不工作。七大事件

Webpack not working in my node.js project. fsevents

我目前正在尝试实施本教程:

https://www.typescriptlang.org/docs/handbook/react-&-webpack.html

我应该安装 reactreact-dom 以及 webpack + typescript + awesome-typescript-loader + source-map-loader,这就是我做了什么。我还根据从命令行获得的说明安装了 webpack-cli

我在本地安装了所有它们(reactreact-dom 作为 PROD,其余作为 DEV 依赖项)。目前我没有在全局安装任何包。

在此之后,这是我的 package.json 文件:

{
  "name": "reactandwebpack-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "awesome-typescript-loader": "^5.2.0",
    "source-map-loader": "^0.2.3",
    "typescript": "^2.7.2",
    "webpack": "^4.16.4",
    "webpack-cli": "^3.1.0"
  },
  "dependencies": {
    "@types/react": "^16.4.7",
    "@types/react-dom": "^16.0.6",
    "react": "^16.4.2",
    "react-dom": "^16.4.2"
  }
}

此时,当我 运行 npm ls 我得到一堆错误,因为 webpack 的一些可选依赖显然丢失了(树中的所有错误都在 webpack及以下fsevents如下:

webpack@4.16.4
(...)watchpack@1.6.0
     (...)chokidar@2.0.4
          (...)fsevents@1.2.4 -> UNMET OPTIONAL DEPENDENCY
               And everything below fsevents is also marked with UNMET DEPENDENCY

当我 运行 webpack 命令时,我得到 "webpack not recognized error".

有人可以帮忙吗?一段时间以来,我一直在努力解决这个问题。

PS:

Npm -v 5.6.0
Node -v 8.11.3 //(that's what I get from the terminal, 
               //VSCode "About" tells me something different, I don't know why).

Using Visual Code

Version 1.24.0
Date 2018-06-06T17:35:40.560Z
Shell 1.7.12
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

已解决

不确定原因,但它与 ./bin 文件夹有关,而 webpack-cli "ambient variable" 不可用(我不知道这是最准确的描述)。

当我尝试 运行 webpack 时,我得到 "not recognized error"。

但是当我 运行 nodemodules\.bin\webpack-cli 它正常工作。

一切都在本地安装。

我也可以 运行 它带有选项,例如 nodemodules\.bin\webpack-cli --help

原因是因为它没有链接到你的环境。当你在全球范围内安装某些东西时,你可以在任何地方访问它,因此它只需执行 webpack 即可工作。由于您在本地安装了所有内容,因此二进制文件位于 node_modules/.bin.

本地安装时有两种选择。

  1. 使用 npm 脚本(npm 运行 构建、观看...等等)。
  2. ./node_modules/.bin/moduleName --flags

创建 npm 脚本并在其中添加所有命令更容易。

如果你 运行 "webpack",CLI 会发现全局 webpack 是通过 (npm install webpack -g) 安装的。从本地项目使用 webpack。你应该把它放到 npm 脚本中。

package.json

{
    "script": {
        "start": "webpack"
    }
}

通过这样做,你可以 运行 npm start 到 运行 webpack.