在vscode中调试时导入和导出不起作用

时间:2017-11-15 09:25:14

标签: javascript ecmascript-6 visual-studio-code

系统配置

  • Mac OS High Sierra 10.13.1
  • vs code 1.18.0
  • node 6.11.4
  • babel 6.26.0

我想在纯js文件(没有 node_modules 文件夹)中发送es6 feature import import关键字

创建2个文件,如下面的内容

utility.js

export const generateRandom = () => {
    console.log('inside generate Random');
    return Math.random();
};

check.js

import { generateRandom } from './export';

console.log(generateRandom());

check.js 点击F5并选择environmentnt> Node.js的

它在调试控制台选项卡中显示以下错误

/opt/parixan/import.js:1 (function (exports, require, module,
__filename, __dirname) { import { generateRandom } from './utility';
                                                              ^^^^^^ SyntaxError: Unexpected token import
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Timeout.Module.runMain [as _onTimeout] (module.js:604:10)
    at ontimeout (timers.js:386:11)
    at tryOnTimeout (timers.js:250:5)

在崇高的文本中,我可以通过自定义的javascript构建系统运行相同的代码;但是我们如何在vs代码中运行相同的

以下是必要的文件

.eslintrc

    {
        "env":
        {
            "browser": true,
            "node": true,
            "es6": true
        },
        "extends": "eslint:recommended",
        "ecmaFeatures": {
            "modules": true,
            "spread": true,
            "restParams": true
        },
        "parserOptions": {
            "ecmaVersion": 6,
            "sourceType": "module"
        },
        "globals":
        {
            "angular": true,
            "module": true,
            "inject": true,
            "moment": true,
            "saveAs": true,
            "require": false
        },
        "rules":
        {
            "indent": [0, "tab"],
            "linebreak-style": [0, "unix"],
            "semi": [2, "always"],
            "no-console": "off"
        }
    }

jsconfig.json

    {
        "compilerOptions": {
            "target": "ES6",
            "module": "commonjs"
        }
    }

1 个答案:

答案 0 :(得分:0)

随着我的macOS更新,它停止了所有已安装的插件,例如babel-node。这就是为什么它停止编译具有最新es6语法的js文件的原因。这是解决问题的步骤

  • 安装最新节点

nvm istall node

  • 安装babel-cli

npm install babel-cli -g

which babel-node将提供可以使用的完整路径,但我们会babel-node代替路径

现在使用以下步骤配置两个编辑器

VSCODE

  • 安装code runner
  • 打开vs代码中的用户设置,并将此行与其他设置一起添加

      "code-runner.executorMap": {
                  "javascript": "babel-node"
      }
    
  • 现在选择文件并按选项+ control + N 运行代码并在控制台中查看输出

Sublime Text 3

  • 使用以下内容创建新的构建系统或编辑构建系统,在我的情况下,我添加了构建系统,所以位置是

/ Users / {username} / Library / Application Support / Sublime Text 3 / Packages / User / node.sublime-build

{
    "shell_cmd": "babel-node ${file}",
    "selector": "source.js" 
}
  • 选择文件并从sublime文本运行 Ctrl + B,文件输出将显示在底部。