我试图运行" npm install"使用 gulp版本3.9.1 在子文件夹中的shell命令。目标是从源代码编译引导程序。我已经在Excute command in gulp for sub folder处找到了示例,但我仍然会在ENOENT"错误。
此外, NPM版本为2.15.9
var spawn = require('child_process').spawn;
// complie boostrap
gulp.task('compile-boostrap', function(done) {
spawn('npm', ['install'], { cwd: 'src/bootstrap/', stdio: 'inherit' })
.on('close', done);
});
gulp.task('default', [ 'compile-boostrap']);
我收到以下错误消息。
$ gulp
[02:12:43] Using gulpfile c:\Users\jacky\web-ui\gulpfile.js
[02:12:43] Starting 'compile-boostrap'...
events.js:141
throw er; // Unhandled 'error' event
^
Error: spawn npm ENOENT
at exports._errnoException (util.js:907:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
at Function.Module.runMain (module.js:443:11)
at startup (node.js:139:18)
at node.js:974:3
下面是我的fs树。
C:\USERS\ME\WEB-UI\SRC
├───bootstrap
│ ├───.github
│ ├───assets
│ │ ├───brand
│ │ ├───css
│ │ ├───img
│ │ │ └───favicons
│ │ ├───js
│ │ │ ├───src
│ │ │ └───vendor
│ │ └───scss
│ ├───build
│ ├───dist
│ │ ├───css
│ │ └───js
│ ├───docs
│ │ └───4.0
│ │ ├───about
│ │ ├───components
│ │ ├───content
│ │ ├───examples
│ │ │ ├───album
│ │ │ ├───blog
│ │ │ ├───carousel
│ │ │ ├───cover
│ │ │ ├───dashboard
│ │ │ ├───grid
│ │ │ ├───jumbotron
│ │ │ ├───justified-nav
│ │ │ ├───narrow-jumbotron
│ │ │ ├───navbar-bottom
│ │ │ ├───navbar-top
│ │ │ ├───navbar-top-fixed
│ │ │ ├───navbars
│ │ │ ├───offcanvas
│ │ │ ├───screenshots
│ │ │ ├───signin
│ │ │ ├───starter-template
│ │ │ ├───sticky-footer
│ │ │ ├───sticky-footer-navbar
│ │ │ └───tooltip-viewport
│ │ ├───extend
│ │ ├───getting-started
│ │ ├───layout
│ │ └───utilities
│ ├───js
│ │ ├───src
│ │ └───tests
│ │ ├───unit
│ │ ├───vendor
│ │ └───visual
│ ├───nuget
│ ├───scss
│ │ ├───mixins
│ │ └───utilities
│ ├───_data
│ ├───_includes
│ │ └───icons
│ ├───_layouts
│ └───_plugins
├───bower_components
│ ├───jquery
│ │ ├───dist
│ │ ├───external
│ │ │ └───sizzle
│ │ │ └───dist
│ │ └───src
│ │ ├───ajax
│ │ │ └───var
│ │ ├───attributes
│ │ ├───core
│ │ │ └───var
│ │ ├───css
│ │ │ └───var
│ │ ├───data
│ │ │ └───var
│ │ ├───deferred
│ │ ├───effects
│ │ ├───event
│ │ ├───exports
│ │ ├───manipulation
│ │ │ └───var
│ │ ├───queue
│ │ ├───traversing
│ │ │ └───var
│ │ └───var
│ ├───typeahead.js
│ │ ├───dist
│ │ ├───doc
│ │ │ └───migration
│ │ ├───src
│ │ │ ├───bloodhound
│ │ │ ├───common
│ │ │ └───typeahead
│ │ └───test
│ │ ├───bloodhound
│ │ ├───fixtures
│ │ ├───helpers
│ │ ├───integration
│ │ └───typeahead
│ └───typeahead.js-bootstrap4-css
├───css
├───images
│ └───Entypo+
│ ├───Entypo+
│ └───Entypo+ Social Extension
└───includes
答案 0 :(得分:0)
如果您将shell
参数设置为true
:
gulp.task('compile-boostrap', function(done) {
spawn('npm', ['install'], { cwd: 'src/bootstrap/', stdio: 'inherit', shell: true })
.on('close', done);
});
那是因为Windows要求终端运行npm。在官方documentation中对此进行了解释。