我在Visual Studio 2013的项目中使用了Gulp。
我将所有项目都移到了新的开发机器上。在项目中我使用Gulp。这是我在gulpfile.js中的任务:
config = {
scripts: {
src: "./app",
destination: "./scripts/app"
},
templates: {
src: "./app/**/*.tmpl.html",
destination: "./scripts/app",
filename: "templates"
},
build: {
src: "./scripts/app/*.js",
destination: "./scripts/build",
filename: "dashboard-build"
}
}
gulp.task("templates", function () {
gulp.src(config.templates.src)
.pipe(html2js({
outputModuleName: "templates",
useStrict: true
}))
.pipe(concat(config.templates.filename + ".js"))
.pipe(gulp.dest(config.templates.destination))
});
当我尝试触发任务命令提示符窗口时,出现此错误:
C:\Development\Repositories\Tambaound\Tambaound.Web>gulp templates
[17:04:59] Using gulpfile C:\Development\Repositories\Tambaound\Tambaound.Web\gulpfile.js
[17:04:59] Starting 'templates'...
[17:04:59] Finished 'templates' after 12 ms
C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\gulp-util\node_modules\vinyl\index.js:120
if (!this.path) throw new Error('No path specified! Can not get relative.');
^
Error: No path specified! Can not get relative.
at File.get (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\gulp-util\node_modules\vinyl\index.js:120:27)
at Stream.bufferContents (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-concat\index.js:35:20)
at Stream.stream.write (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-concat\node_modules\through\index.js:26:11)
at DestroyableTransform.ondata (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:531:20)
at emitOne (events.js:96:13)
at DestroyableTransform.emit (events.js:188:7)
at readableAddChunk (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:198:18)
at DestroyableTransform.Readable.push (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:157:10)
at DestroyableTransform.Transform.push (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:123:32)
at DestroyableTransform._flush (C:\Development\Repositories\Tambaound\Tambaound.Web\node_modules\gulp-html2js\index.js:75:14)
在我的旧机器上,所有工作都很完美,新开发机器上的所有其他任务都能正常工作。我该如何解决这个问题?
答案 0 :(得分:3)
您可能在这两台计算机上使用不同版本的scanf("%c", a);
switch(a) {
case'+':
add(stack);
break;
case '-':
sub(stack);
break;
case 'number':
push(stack, a);
break;
...}
。
以下是直接来自gulp-html2js
的{{3}}的示例:
gulp-html2js
这看起来非常像您尝试使用的代码。
然而,这是README.md
for v0.3.1(最新版本)中的相同示例:
gulp.src('templates/*.html')
.pipe(html2js({
outputModuleName: 'template-test',
useStrict: true,
target: 'js'
}))
注意区别? gulp.src('templates/*.html')
.pipe(html2js('angular.js', {
adapter: 'angular',
base: 'templates',
name: 'angular-demo'
}))
选项似乎已重命名为ouputModuleName
。此外,name
的第一个参数现在是新模块的文件名。您的代码遗失了,而且这会导致html2js()
错误。
通常这样的事情不应该发生。模块应遵循README.md
for v0.4.2,并且只应在主要版本更改中引入这样的更改。但是v0.x.x Semantic Versioning:
主要版本零(0.y.z)用于初始开发。任何事情都可能随时改变。公共API不应被视为稳定。
您有两种选择:
确保在旧计算机上安装了相同版本的No path specified!
。使用v0.3.1应该这样做:
gulp-html2js
将您的任务调整为上面版本0.4.2的示例中的任务。 is exempt from this rule可以为您提供帮助。
(您可能还需要考虑使用README for that version,这是一个竞争插件,似乎在执行相同的任务,但下载次数约为其三倍。)