- 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/
我的 Gruntfile.js包含 Compass 的任务: grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // F
我正在构建一个允许在父应用程序生态系统中创建模块化“应用程序”的框架。 父应用程序将在其根目录下有一个 Gruntfile.js,然后在文件夹结构的更深处将有子“应用程序”,我希望允许它们拥有自己的
Gruntfile.js 位于项目根/Gruntfile.js asset_compress.ini 位于项目根/app/Config/asset_compress.ini 测试是使用 Jasmine
我已经下载了 Foundation 5,但在将插件添加到默认配置中时遇到问题。我从控制台的 Angular 理解插件的安装。然而,在包含并注册任务后,我很难正确编码 Gruntfile.js Grun
我的 Gruntfile 中有以下行。 js files: ['/scripts/{,*/}*.coffee'], 有人可以告诉我什么吗{,*/}*意思是?我知道它试图匹配所有 .coffee脚本文件
这应该是一个快速的答案: 给定以下文件夹结构: ├── public │ ├── app | | ├── Folder A | | | ├──something.js
当我在终端上运行 grunt 命令时,concat 任务不会创建 concat/form.js,我需要它来缩小 javascript 代码。 我有下一个目录结构: src/entry/form.jss
我想创建一个连续运行 3 个 grunt 任务的 grunt 文件,无论它们是失败还是通过。如果其中一个 grunts 任务失败,我想返回最后一个错误代码。 我试过: grunt.task.run('
我的 Gruntfile 现在变得非常大,我想将它分成多个文件。我用 Google 搜索并进行了很多试验,但无法让它发挥作用。 我想要这样的东西: Gruntfile.js module.export
问题 :在 Grunt 项目的“配置任务”页面上,为任务指定文件的“文件对象格式”方式有效,而“文件数组格式”和关键的“动态构建文件对象”方式(请参阅“dynamic_mappings”部分)没有。
是否可以在 Gruntfile 中使用智能感知? 因为“grunt”不是全局变量而是 Gruntfile 中的一个参数,VSCode 将假定它只是一个未知的函数参数“any”。 module.expo
是否可以在 Gruntfile 中使用智能感知? 因为“grunt”不是全局变量而是 Gruntfile 中的一个参数,VSCode 将假定它只是一个未知的函数参数“any”。 module.expo
我刚刚创建了 Gruntfile.js,它在运行 grunt -v 时显示以下错误: Reading "Gruntfile.js" Gruntfile...OK Registering Gruntfi
我第一次尝试使用 Grunt 来完成一些任务。在任何任务中我都会遇到此错误: Loading "Gruntfile.js" tasks...ERROR >> SyntaxError: Unexpect
我正在创建一个复杂的 Yeoman Generator,我需要读取现有的 gruntfile 并修改它。 任何解析 gruntfile 的 JavaScript 方法就足够了。 任何帮助将不胜感激。
我有一个非常简单的 Jade 模板,只有一个变量。然而,当我生成html文件时,一堆jade javascript被插入并创建了一个runtime.js文件。 这是我的任务: jade: {
我已经关注了这个 link尝试在 ubuntu 服务器上安装 mean.js 堆栈。 关于grunt,在/opt/mean,我已经做了 sudo npm install -g bower grunt-
在 Gruntfile.js 的 initConfig 函数中,我有以下内容: grunt.initConfig({ pkg: grunt.file.readJSON('package.j
我正在使用查找所有单元测试文件的 karma 任务设置 grunt。我需要访问所有 *.js文件和 *.spec.js文件,但我想排除所有 *.e2e.js文件。基于 node glob文档,我希望以
我正在尝试运行以下 grunt 命令 grunt test:e2e但这似乎不起作用,因为我收到了标题中指出的警告。我不想发布整个 gruntfile.js 所以我提供了要点链接。如果有人能指出我正确的
我是一名优秀的程序员,十分优秀!