咕哝和吞咽困惑——在另一个有吞咽功能的项目中进行吞咽

grunt and gulp confusions - running a gulp within another project that has gulp

本文关键字:功能 项目 另一个      更新时间:2023-09-26

这听起来可能很愚蠢,但请耐心等待。我遇到了麻烦。

我正在进行一个项目,该项目使用Grunt来编译和构造其分发版。但是,它使用了另一个称为prism的库,您可以在中找到它http://prismjs.com

现在,prism是一个很棒的库,我确实喜欢它。然而,我正在使用bower将它安装到我的应用程序中——它很简单,bower install prism --save-dev

现在我遇到的问题是prism作为自己的源代码下载——它恰好没有我需要的编译源,而是创建编译源的gulpfile.js。我通常对此很满意,我确实喜欢我的一些狼吞虎咽的好东西——但在这种情况下,我有点不知所措,因为我从未遇到过我使用grunt同时使用gulp的情况。

太长;未阅读

文件夹结构最终是这样的;

/-root
 | - bower_components
 | - - bootstrap
 | - - jquery
 | - - jquery-colorbox
 | - - prism
 | - - - components
 | - - - plugins
 | - - - themes
 | - - - vendor
 | - - - .bower.json
 | - - - bower.json
 | - - - components.js
 | - - - gulpfile.js
 | - - - package.json
 | .gitignore
 | bower.json
 | Gruntfile.js
 | package.json
 | README.md

因此,我需要做的是弄清楚如何从/gruntfile.js运行/bower_components/prism/gulp.js,这样它就会产生编译后的结果,然后我的gruntfile.js可以使用它将其发送到我的/dist文件夹。

我知道我可以单独克隆prism存储库并执行它,但我希望构建我的库的体验是独立的,所有这些都在一种事情中。这可能吗?还是我只是个傻瓜?

我将进一步了解@Benjamin所说的内容。

您确实可以使用grunt-exec插件或grunt-shell插件直接从Gruntfile运行命令。

满足您需求的任务可以是这样的,使用grunt shell

shell: {
  launchPrism: {
    command: 'gulp',
    execOptions: {
      cwd: 'bower_components/prism'
    }
  }
}

您仍然需要在prism目录中运行npm install,但也可以将其添加到执行的命令中或在项目中安装