Error: Cannot find module when deploying to heroku

项目中有用到heroku,推送到生产环境的时候,查看日志 发现提示:Error: Cannot find module

可是本地测试的时候还是正常的,最终发现是因为搞错了package.json中模块引用的位置。dependencies、devDependencies,查了相关资料,发现下面这篇文章:

区别 dependencies、devDependencies

解释的不错,就搬过来了:

我们在执行 npm install 安装依赖时,通常都会将依赖的名称、版本要求写入 package.json 文件。

其中有两个命令行参数:

  1. --save-prod 将依赖的名称、版本要求写入 dependencies
  2. --save-dev 将依赖的名称、版本要求写入 devDependencies

从命令行参数字面上,我们就能看出 dependencies、devDependencies 的区别:dependencies 表示我们要在生产环境下使用该依赖,devDependencies 则表示我们仅在开发环境使用该依赖。

举个例子,我要用 webpack 构建代码,所以在开发环节,它是必需的,但对普通用户来说,它是不必要的,所以安装 webpack 时,我要执行:

npm install webpack --save-dev

而不是:

npm install webpack --save-prod

不过,在 npm 5 发布以前,答案并没有这么直观。

在 npm 5 发布以前,我们执行 npm install 后,npm 只会下载依赖到当前目录的 node_modules,并不会在 package.json 中写入依赖的信息。

那时我们也有两个参数可以使用:

  1. --save 将依赖的名称、版本要求添加到 dependencies
  2. --save-dev 将依赖的名称、版本要求添加到 devDependencies

显然,--save 与 --save-dev 的区别远不如 --save-prod 与 --save-dev 这么清楚。

或许 npm 该考虑把 dependencies 改成 prodDependencies,这样就能减少误会。

上面内容摘至:引用

未经允许不得转载:cocos集中营 » Error: Cannot find module when deploying to heroku
微信公众号:zs40086
免vip看全网视频,抢先福利电影啥都有!
10000人已关注
分享到:
赞(0) 打赏