如何用ClosureCompiler.js加载npm包

我想试试Google Closure Compiler ,所以我用npm distribution closurecompiler.js来使用它。 我正在使用闭包编译器traspile我es6的代码es5。 这是不是一个select更换为babel transpiler。

所以我从一些基本的例子开始,那些工作正常,但我坚持导入一些npm包。 这是我的依赖关系,从我的package.json文件

 "dependencies": { "body-parser": "~1.5.2", "express": "~4.7.2", "method-override": "~2.1.2", "mongoose": "~3.6.2", "morgan": "~1.2.2", "vue": "^1.0.16", "vue-resource": "^0.7.0" } 

运行require命令它是所有工作,但如果我运行

 import express from 'express' 

我得到了错误

 server.js:4: ERROR - Failed to load module "express" import express from 'express' ^ 

这个命令是用来做转储的

 ccjs config/*.js server.js --externs=node > dist/server.js && node dist/server.js 

我试过,没有--externs=node选项,但没有任何改变。 请注意,像

 import database from './config/database' 

工作正常,问题只针对node_modules包。 那么,我怎样才能使这些导入工作与封闭编译器?

--js_module_root标志告诉编译器在哪里find模块。 默认情况下,它只能看到当前目录,所以你可能也需要传递node_modules目录来完成这个工作。

我没有用节点自己的编译器,但我认为这应该是你所需要的。 如果可行,请通过https://github.com/google/closure-compiler/wiki/JS-Modules更新文档,或者在此处发表评论以提醒我们这样做。