- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚创建了 Gruntfile.js,它在运行 grunt -v
时显示以下错误:
Reading "Gruntfile.js" Gruntfile...OK
Registering Gruntfile tasks.
Loading "Gruntfile.js" tasks...ERROR
>> SyntaxError: Unexpected identifier
>> at exports.runInThisContext (vm.js:53:16)
>> at Module._compile (module.js:373:25)
>> at Object.Module._extensions..js (module.js:416:10)
>> at Module.load (/home/marc/repo/??????????/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
>> at Function.Module._load (module.js:300:12)
>> at Module.require (module.js:353:17)
>> at require (internal/module.js:12:17)
>> at loadTask (/home/marc/repo/??????????/node_modules/grunt/lib/grunt/task.js:316:10)
>> at Task.task.init (/home/marc/repo/??????????/node_modules/grunt/lib/grunt/task.js:437:5)
>> at Object.grunt.tasks (/home/marc/repo/??????????/node_modules/grunt/lib/grunt.js:111:8)
>> at Object.module.exports [as cli] (/home/marc/repo/??????????/node_modules/grunt/lib/grunt/cli.js:27:9)
>> at Object.<anonymous> (/usr/lib/node_modules/grunt-cli/bin/grunt:44:20)
>> at Module._compile (module.js:409:26)
>> at Object.Module._extensions..js (module.js:416:10)
>> at Module.load (module.js:343:32)
>> at Function.Module._load (module.js:300:12)
>> at Function.Module.runMain (module.js:441:10)
>> at startup (node.js:139:18)
>> at node.js:968:3
(用“??????????”代替此处的帖子)
现在我不知道我做错了什么,因为上面的堆栈跟踪没有给我任何相关信息(据我所知)。
有没有办法从总体上调试 Gruntfile.js?
这是我的 Gruntfile.js:
module.exports = function(grunt) {
//Initializing the configuration object
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
/**
* Set project object
*/
project: {
app: './app',
output: './dist',
styles_path: './app/assets/stylesheets',
styles_output_path: './dist/assets/css'
js_path: './app/assets/js',
js_output_path: './dist/assets/js',
images_path: './app/assets/images',
images_output_path: './dist/assets/images',
},
// Task configuration
/**
* ------------------- concat
*/
concat: {
options: {
separator: ';',
},
js_main: {
src: [
'./bower_components/jquery/dist/jquery.js',
'./bower_components/bootstrap/dist/js/bootstrap.js',
'<%= project.js_path %>/*.js'
],
dest: '<%= project.js_output_path %>/main.js',
}
},
/**
* ------------------- copy
*/
copy: {
main: {
files: [
// includes files within path and its sub-directories
{
expand: true,
flatten: true,
src: ['<%= project.app %>/*.html'],
dest: '<%= project.output %>/',
filter: 'isFile'
}
],
},
images: {
files: [
// includes files within path and its sub-directories
{
expand: true,
flatten: true,
src: ['<%= project.images_path %>/**'],
dest: '<%= project.images_output_path %>/',
filter: 'isFile'
}
],
},
},
/**
* ------------------- Project banner
*/
// tag: {
// banner: '/*!\n' +
// ' * <%= pkg.name %>\n' +
// ' * <%= pkg.title %>\n' +
// ' * <%= pkg.url %>\n' +
// ' * @author <%= pkg.author %>\n' +
// ' * @version <%= pkg.version %>\n' +
// ' * Copyright <%= pkg.copyright %>. <%= pkg.license %> licensed.\n' +
// ' */\n'
// },
/**
* ------------------- Sass
*/
sass: {
dev: {
options: {
style: 'expanded',
// banner: '<%= tag.banner %>'
},
files: {
'<%= project.styles_output_path %>/app.css': '<%= project.styles_path %>/main.scss'
}
},
dist: {
options: {
style: 'compressed'
},
files: {
'<%= project.styles_output_path %>/app.css': '<%= project.styles_path %>/main.scss'
}
}
},
/**
* ------------------- uglify
*/
uglify: {
options: {
mangle: false // Use if you want the names of your functions and variables unchanged
},
main: {
files: {
'<%= project.js_output_path %>/main.js': '<%= project.js_output_path %>/main.js',
}
}
}
/**
* ------------------- Filesystem watcher
*/
watch: {
html_main: {
files: ['<%= project.app %>/*.html'], //watched files
tasks: ['copy'], //tasks to run
options: {
livereload: true //reloads the browser
}
},
js_main: {
files: [
//watched files
'<%= project.js_path %>/**'
],
tasks: ['concat:js_main', 'uglify:main'], //tasks to run
options: {
livereload: true //reloads the browser
}
},
sass: {
files: ['<%= project.styles_path %>/*.scss'], //watched files
tasks: ['sass:dev'], //tasks to run
options: {
livereload: true //reloads the browser
}
}
}
});
// Plugin loading
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
// Task definition
grunt.registerTask('default', ['watch']);
// grunt.registerTask('build', ['copy', 'sass:dev', 'concat:js_main', 'uglify:main']);
};
最佳答案
首先你的 grunt 配置有 2 个语法错误:
project: {
app: './app',
output: './dist',
styles_path: './app/assets/stylesheets',
styles_output_path: './dist/assets/css' <== missing comma here
js_path: './app/assets/js',
js_output_path: './dist/assets/js',
images_path: './app/assets/images',
images_output_path: './dist/assets/images',
},
在这里:
uglify: {
options: {
mangle: false // Use if you want the names of your functions and variables unchanged
},
main: {
files: {
'<%= project.js_output_path %>/main.js': '<%= project.js_output_path %>/main.js',
}
}
} <== another missing comma here
其次,您可以使用 Visual Studio Code 进行调试:点击左边的Debug按钮,新建一个配置文件。将configuration中的“program”修改为grunt bin文件,如下,然后开始调试:
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules//grunt/bin/grunt",
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": null,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"externalConsole": false,
"sourceMaps": false,
"outDir": null
},
关于javascript - 如何调试 Gruntfile.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37744003/
昨晚我因为这个问题脑子崩溃了。在确保没有来 self 的 eclipse 错误检查的明显错误之后,我开始调试我的程序。顺便说一下,我正在使用 Jre7。无论如何,每次我进入我的类调用(我们称之为“a”
(前言:我对 C/C++ 还很陌生,我真的不知道 native 代码中的调试实际上是如何工作的。) 一些消息来源说 gdb 和 lldb 可以调试 any program compiled to ma
我正在尝试从 Visual Studio 2012 外部调试 T4Scaffolding.Core Nuget 包。我使用的是安装了 Powershell 3.0 的 Powershell ISE,并
如何调试汇编代码?我在 Linux 上使用 gdb。我知道我可以看寄存器。有哪些调试汇编代码的方法? 最佳答案 您当然可以使用 breakpoints就像 C 或任何其他编译语言一样。 This ar
如何在每次通话时打印列表或 haskell 中的内容,例如: funct a list = funct (a + 1) (a : list) print list her
让我用我对 Makefiles 或 make 知之甚少的评论作为这个问题的前缀。 有一个非常大的项目,每晚自动构建。它以 Debug 和 Release 模式构建,Debug 用于 Valgrind
我正在创建一个计算每周工资的程序,那么任何加类工资都是该周正常工资的 1.5 倍。我的代码如下: #include int main() { double payrate; double h
我使用的是 Visual Studio 2010 Express Developer 版本。开发网站。我在我的 .aspx 页面中使用 JavaScript。 如何在 Javascript 中放置断点
我最近开始修补 Project Euler 问题,并尝试用 Javascript 解决它们。这样做我往往会产生许多无限循环,现在我想知道是否有比终止 Firefox 或 Chrome 中的选项卡更好的
有没有办法在程序执行期间生成一个交互式 python 控制台(最好是 iPython)而不暂停主程序并且能够检查和修改程序变量?类似于浏览器为 JavaScript 提供的功能。 我知道 pdb.se
我正在使用 FFmpeg @ Android 并希望能够进入 FFmpeg 代码(Eclipse + Seqouya),同时编译 FFmpeg 我使用 --disable-stripping --en
我从使用互操作调用 win32 api 函数的 .net 进程中得到一个异常。 我有一个调试器,我想查看 LastError 的值。 是否可以从 Visual Studio 调试器中查看 LastEr
我正在尝试通过 VBA 创建一个宏,以在 IE 的多个选项卡中打开一组指定的链接。目前我正在使用下面的代码,如果我试图打开 3 个或更少的选项卡,它大部分时间都可以工作。任何超过 3 的代码都会在“N
好的,这似乎是一个愚蠢的问题,因为 MonoDevelop 越来越成熟,所以我确定我只是想念它,但我环顾四周,所有关于这个主题的问题似乎都是关于远程调试或 Mac 上的调试。 我使用的是 Ubuntu
如何调试 Rscripts是从命令行运行的? 我目前正在使用 getopt传递命令行选项的包,当有错误时,我很难: 看看到底出了什么问题; 在 R 中交互式调试(因为脚本需要命令行选项。) 有没有人有
支持 PDF 和网络上的信息很少。我碰巧在博客中看到一篇文章,提到 $.write() 或 $.writeln() 将向 javascript 控制台写入一个字符串。相当有用。有谁知道这个 $ 对象是
PyCharm 1.5 中是否可以使用 Firefox 和 Chrome 支持的 JavaScript 调试? 如果是这样,它能否与 Python/Django 调试器一起有效运行? 如果没有,有没有
我确定这以前发生在人们身上,某些东西在 Debug模式下工作,你在发布时编译,但有些东西坏了。 这发生在我在嵌入式 XP 环境中工作时,我发现最好的方法确实是编写一个日志文件来确定它会出错的地方。 您
我目前正在为即将到来的项目评估 Flow3。 AOP 模式和依赖注入(inject)将非常适合我们的目的。 现在我想不通的是如何在 Controller Action 中调试一些结果。 public
最初,我有一个包含测试服务器的 Django 应用程序。要调试此设置,我只需添加 import pdb; pdb.set_trace()代码中的任何位置,并且有一个断点将我扔到终端中的交互式调试器中(
我是一名优秀的程序员,十分优秀!