我确信我错过了一些东西。我试图将一个项目的gruntfile重新用于一个新项目。该文件运行并启动服务器实例,但不是在我设置的端口,并且它不会进入监视模式"。
grunt命令导致
Opening server for /Users/stevelombardi/Documents/command-central/cc on port 1337.
事实上,如果我打开我的浏览器http://127.0.0.1:1337
,我会看到主页。但是,我期望端口9000(请参阅gruntfile)并观察我的文件的更改。
这是gruntfile。我在这里搞砸了什么?
'use strict';
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
options: {
livereload: true,
},
html: {
files: [
'{,*/}*.html'
]
},
sass: {
files: ['sass/{,*/}*.scss'],
tasks: ['sass:app'],
options: {
livereload: false
}
},
js: {
files: ['scripts/{,*/}*.js']
},
css: {
files: ['css/*.css'],
},
gruntfile: {
files: ['Gruntfile.js']
}
},
sass: {
app: {
options: {
style: 'compact',
sourcemap: 'auto'
},
files: {
'css/styles.css': 'sass/styles.scss',
}
}
},
connect: {
options: {
port: 9000,
// Change this to '0.0.0.0' to access the server from outside.
hostname: '127.0.0.1',
livereload: 35729
},
livereload: {
options: {
open: true,
base: ''
}
},
livepreview: {
options: {
open: true,
base: ''
}
}
}
});
grunt.registerTask('default', [
'sass',
'connect:livepreview',
'watch'
]);
};
答案 0 :(得分:0)
我不知道为什么,但是这个Gruntfile现在运行正常。我删除了我的node_modules文件夹和package.json,然后重新启动了一个新的并安装了这些模块:
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-connect": "^0.8.0",
"grunt-contrib-sass": "^0.8.1",
"grunt-contrib-watch": "^0.6.1",
"load-grunt-tasks": "^1.0.0"
}
它按照我的预期运作。
答案 1 :(得分:0)
这对我有用(修改我的以适应你的情况) - 我认为"打开"会帮助你:
在我的gruntfile.settings.json中:
"webServer": {
"port": 9000
}
在我的任务之外:
function mountFolder(connect, dir) {
path = path || require('path');
return connect.static(path.resolve(dir));
}
然后我的连接看起来像这样:
connect: {
livereload: {
options: {
port: settings.webServer.port,
hostname: '*',
middleware: function (connect) {
livereload = livereload || require('connect-livereload');
return [
livereload(),
mountFolder(connect, '.'),
expireHeaders
];
}
}
},
web: {
options: {
port: settings.webServer.port,
hostname: '*',
middleware: function (connect) {
return [
mountFolder(connect, '.'),
];
}
}
}
},
open: {
web: {
path: 'http://localhost:<%= connect.web.options.port %>'
}
}
最后
grunt.task.run([
'web',
'connect:livereload',
'open:web',
'watch'
])
否则,我唯一能想到的可能是其他东西已经在使用该端口吗?