Gulp - 找不到模块“gulp-rename”

6

我试图设置Gulp来编译SCSS文件,并在此过程中重命名SCSS文件 - 例如:

我想要SCSS/original.scss保存为CSS/new.css

这是在Windows 10虚拟机上进行的

我已经安装了Gulp,安装了gulp-sass,一切都很顺利。

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('compile-new-main', function(){
 return gulp.src('scss/new-main.scss')
  .pipe(sass()) // Using gulp-sass
  .pipe(gulp.dest('css'))
 });

运行上述gulp任务是完全没有问题的,但当我尝试安装gulp-rename并按照以下方式运行任务时,任务就会出错:
var gulp = require('gulp');
var sass = require('gulp-sass');
var rename = require("gulp-rename");

gulp.task('compile-new-main', function(){
 return gulp.src('scss/new-main.scss')
  .pipe(sass()) // Using gulp-sass
  .pipe(rename("styles.css"))
  .pipe(gulp.dest('css'))
 });

我最初尝试使用以下命令安装gulp重命名插件

npm install gulp-rename

和我为gulp-sass所做的一样,它似乎像以前一样正常工作,但显然并不是,但我不确定如何或为什么。

我已经搜索了一些内容,并尝试全局安装它,这似乎也安装成功了。

npm install gulp-rename -g

我还看到一些建议将gulp-rename保存为开发依赖项,所以我尝试了

npm install gulp-rename --save-dev

再次安装时没有错误。

当我尝试运行gulp任务时,我会得到以下错误消息:

错误:找不到模块“gulp-rename” 在Function.Module._resolveFilename (module.js:469:15) 在Function.Module._load (module.js:417:25) 在模块需要 (module.js:497:17) 在内部/模块中(internal/module.js)需要 在C:\Projects\VAT-Expert\gulpfile.js的对象。 (第3行,第14个字符) 在Module._compile(module.js:570:32) 在Object.Module._extensions..js(module.js:579:10) 在模块加载(module.js:487:32) 在tryModuleLoad(module.js:446:12) 在Function.Module._load(module.js:438:3)

我无法理解自己做错了什么,认为我已经在这里添加了所有相关信息 - 非常感谢您对我能尝试的任何指导或建议!

N


你的 node_modules 目录中是否有 gulp-rename - Philipp Alexander Frank
@Philipp 哎呀,显然没有安装成功...我会尝试重新安装并找出为什么它没有安装成功和/或如何安装成功... - Neil Kelsey
3个回答

20

首先,请确保在您的package.json文件中的dependenciesdevDependencies中列出了gulp-rename。然后运行:

npm uninstall -g gulp
npm install -g gulp
rm -rf node_modules
npm install 

然后再次检查。


3

从命令行安装gulp-rename包:

npm install --save-dev gulp-rename

然后从 node_modules 导入包

const rename = require("gulp-rename");

在编译之前使用它

例子:

const miniCSS = () => {
    return gulp.src('./css/*.css')
    .pipe(rename('style.min.css'))
    .pipe(uglifycss({
        "uglyComments": true
    }))
    .pipe(gulp.dest('./dist/'))
}

0

我知道这个问题已经有答案了,但我想提供另一种解决方案,适用于 PHP 项目。

  1. $ npm install gulp-rename 可以正常工作并安装包,但仍然出现 Cannot find module 'gulp-rename' 错误。
  2. 如果我从根项目文件夹再往回退一个目录,我就可以在 node_modules 中找到该包。不知何故,我在此目录中没有 package.json 文件。
  3. 执行 $ which gulp-rename 不会显示任何内容,但我知道它已经安装在 node_modules 中。

在这些条件下修复它,我做了以下操作:

var rename = require('../node_modules/gulp-rename/index.js');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接