【发布时间】:2016-01-07 00:58:34
【问题描述】:
我有一个使用 Gulp 的项目。我将我的项目部署到我的 Ubuntu 服务器上,现在想要编译资产(这是我的 gulpfile 目前所做的一切)。安装 Node 和 npm 后,我从项目的根目录运行 npm install 来安装依赖项。 package.json 内容如下:
...},
"devDependencies": {
"bower": ">=1.3.12",
"gulp": "^3.8.10",
"gulp-concat": "^2.4.3",
"gulp-less": "^2.0.1",
"gulp-minify-css": "^0.4.3",
"gulp-notify": "^2.2.0",
"gulp-rename": "^1.2.0",
"gulp-uglify": "^1.1.0"
}...
然后检查我的项目根目录中的node_modules 文件夹,我可以看到每个依赖项的目录,表明它们已安装。但是,当我运行 gulp 时,我会收到如下 npm 错误:
Error: Cannot find module 'through2'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
这些似乎是我项目依赖项的依赖项(因为我的 gulpfile 中没有引用它们),但是为什么 npm 没有安装它们?
当错误出现时,我可以手动安装每个,但我会在下一个缺少的依赖项中得到另一个类似的错误。
我该如何解决这个问题?
【问题讨论】:
-
不回答您的问题,但提供建议:不要使用您的生产服务器进行资产编译。在本地构建资产并作为部署的一部分上传/同步它们。您将摆脱诸如此类的麻烦并减少在另一个环境中安装和配置软件的需要。
-
您的环境、npm 和节点版本是什么?