我正在构建一个gulpfile,用于我的aps.net winforms项目。到目前为止,我在package.json
中有以下内容{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"browserify": "^13.1.0",
"del": "2.2.0",
"gulp": "^3.9.1",
"gulp-sourcemaps": "^2.2.0",
"gulp-typescript": "^3.0.2",
"tsify": "^2.0.2",
"vinyl-source-stream": "^1.1.0"
}
}
并且gulp文件有
/// <binding BeforeBuild='default' />
/*
This file in the main entry point for defining Gulp tasks and using Gulp plugins.
Click here to learn more. http://go.microsoft.com/fwlink/?LinkId=518007
*/
var gulp = require('gulp');
var del = require('del');
var ts = require("gulp-typescript");
var tsProject = ts.createProject("tsconfig.json");
var sourcemaps = require('gulp-sourcemaps');
gulp.task('default', function () {
// place code for your default task here
});
我的节点版本是6.9.1
如果我从命令行('gulp')运行它,它可以正常工作。但是在Visual Studio任务运行器中,它无法加载,并且在输出中我看到以下错误。添加第var sourcemaps = require('gulp-sourcemaps');
行
Failed to run "H:\dev\myproj\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
H:\dev\myproj\node_modules\gulp-sourcemaps\node_modules\strip-bom\index.js:2
module.exports = x => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (H:\dev\myproj\node_modules\gulp-sourcemaps\src\init.js:10:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
同时添加var tsify = require("tsify");
我收到另一个错误...
Failed to run "H:\dev\myproject\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
TypeError: Object #<Object> has no method 'debuglog'
at Object.<anonymous> (H:\dev\myproject\node_modules\tsify\index.js:4:32)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (H:\dev\myproject\gulpfile.js:17:13)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
任何人都有任何想法,为什么我得到这个?
提前致谢!
答案 0 :(得分:5)
我的问题是我没有意识到Visual Studio有自己的(过时的)版本的节点工具(安装在Visual Studio文件夹的某个地方)。多么不整洁!
使其使用&#34; global&#34;节点工具,我可以进入菜单工具|选项|项目和解决方案|外部网络工具并将 file {
path => "file://XXX.YYY.ZZZ.WWW/Archive/*"
}
移至$(PATH)
位置之前。在我这样做之后,我的Gulp文件会加载。
另一个选项可能是通过工具|更新Visual Studio节点工具扩展和更新,但(我认为)我更喜欢使用我将在Visual Studio之外使用的相同外部工具。
答案 1 :(得分:0)
在面对同样的问题与我进行一些调查之后,你的nodejs install和你的包依赖“strip-bom”之间的版本兼容性似乎有问题。
adhoc修正方法是改变:
module.exports = x => {
为:
module.exports = function (x) {
你可能想看看这个: Gulp-Sourcemaps, SyntaxError: Unexpected token >
这似乎解决了我的问题,但不是一个很好的方法。
问题是您可能正在运行旧版本的节点。尝试使用命令node -v
或nodejs -v
检查您的版本。
虽然它可能不是你的情况,但是对于其他人来说非常好看,Debian / Ubuntu实际上在其包管理器“apt-get”上有一个过时的节点版本。因此,您很可能仍在运行旧版本,例如0.10.25。
我推荐的真正修复(我最终做的)是升级你的节点版本。截至目前,版本6.9.1似乎是最新的稳定版。
您可以在nodejs官方网站上查看安装指南:
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions