前言我不是一个专业的程序员,但是在我发现我接受了#34;网页设计"后,我开始为我的老板建立一个网站。在10年前的高中。当时静态网站很好,而且CSS开始显示它的潜力,但我离题了。
我现在正在使用Visual Studio Code上的Node.js项目并且有一个奇怪的例外。代码工作正常,但我想这只是好奇心。无论如何,这是我的代码。
app.js
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
multer = require('multer'),
controller = require('./controllers');
//Sets the view engine to jade.
app.set('views', __dirname + '/frontend');
app.set('view engine', 'jade');
//sets up the development enviroment
if (app.get('env') === 'development') {
app.locals.pretty = true;
app.use(express.static(__dirname + '/build/public'))
var build = require(__dirname + '/build.js');
app.use('css/*', function(req, res, next){
build.style();
next();
});
}
//Sets up the public directory to serve static files - This will be depricated quite soon...
//app.use(express.static(__dirname + '/public'));
//Initalizes site-wide local variables
//app.set('title', 'Halvorson Homes');
//Sets up body-parser to be able to read RESTful requests
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(multer({dest: 'tmp'}).fields());
//Load Controllers
app.use( '/' , controller);
//makes the app listen on port 3000
app.listen(3000, function() {
console.log('Listening on port 3000...');
})
我的文件夹结构大致如下
根据VS Code的内置调试器,第8,14和15行有例外。他们是我在整个项目中使用__dirname的唯一地方。这对我来说很烦人,因为我太完美了。是节点,VS代码还是其他什么?
答案 0 :(得分:4)
您收到的警告来自eslint extension。虽然它在Node.JS中可能有效,但它会警告您__dirname
,因为它在所有JavaScript环境中都无效,例如在浏览器中。
要取消警告,您需要直接在项目的根目录中创建.eslintrc
文件,并指示代码将在节点中运行,如下所示:
{
"env": {
"node": true
}
}
您可以在此处查看用于为实际vscode代码库配置eslint的.eslint
文件https://github.com/Microsoft/vscode/blob/master/.eslintrc
答案 1 :(得分:0)
晚会,但刚刚遇到同样的问题。对我来说,修复是添加节点类型,以便VSCode识别它们:
转到终端视图,然后输入以下内容:
npm install @types/node --save-dev
然后点击Cmd + Shift + P
(至少为Mac)打开VSCode命令搜索对话框,然后选择Reload Window
。
当它再次出现时,该错误以及任何其他与Node.JS内容无关的错误都应该消失。
答案 2 :(得分:0)
除了创建单独的 .eslintrc
文件之外,您还可以将其添加到 package.json
文件中。
docs 状态:
<块引用>要在配置文件中指定环境,请使用 env 键并通过将 each 设置为 true 来指定要启用的环境。例如,以下启用浏览器和 Node.js 环境
{
"name": "mypackage",
"version": "0.0.1",
"eslintConfig": {
"env": {
"browser": true,
"node": true
}
}
}