如何用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更新文档,或者在此处发表评论以提醒我们这样做。