本文介绍了为什么我无法通过“node -harmony test.js”开始和谐模式从命令行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是:

  longhao33 @ hePC:〜$ node --harmony测试。 js 
/home/longhao33/test.js:1
(function(exports,require,module,__filename,__dirname){let str ='es666666666666';
^^^

SyntaxError:在严格模式外不支持块范围的声明(let,const,function,class)
at exports.runInThisContext(vm.js:53:16)
at Module。 _compile(module.js:413:25)
在Object.Module._extensions..js(module.js:452:10)
在Module.load(module.js:355:32)$ ($)
在Function.Module._load(module.js:310:12)
在Function.Module.runMain(module.js:475:10)
启动时(node.js:117: 18)
在node.js:951:3

但是let在以下情况下支持:(很奇怪!)

  longhao33 @ hePC:〜$ node --harmony 
> let str ='es66666666666'
undefined
> str
'es66666666666'




  1. 系统:ubuntu 14.04LTS 64bit

  2. node:V4.1.1(由nvm安装,安装在$ HOME)

  3. test.js的内容: p>

    let str ='es666666666666';
    console.log(str);


提前感谢

解决方案

您在'use strict'; > test.js (如错误信息所示)



它在REPL中有效,因为。


The problem is:

longhao33@hePC:~$ node --harmony test.js 
/home/longhao33/test.js:1
(function (exports, require, module, __filename, __dirname) { let str = 'es666666666666';
                                                              ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:413:25)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:475:10)
    at startup (node.js:117:18)
    at node.js:951:3

But "let" is supported when:(So strange!)

longhao33@hePC:~$ node --harmony
> let str = 'es66666666666'
undefined
> str
'es66666666666'
  1. system:ubuntu 14.04LTS 64bit
  2. node:V4.1.1 (Installed by nvm,which is installed at $HOME)
  3. content of test.js:

    let str = 'es666666666666';console.log(str);

Thanks ahead of time.

解决方案

You're missing 'use strict'; at the top of your test.js (as indicated by the error message).

It works in the REPL because 'use strict'; is automatically included during code evaluation.

这篇关于为什么我无法通过“node -harmony test.js”开始和谐模式从命令行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 08:27