D:\iota\code\web\iota-api-server-scaffold\node_modules\iota-user\index.js:4
import * as auth from './src/auth';
^^^^^^
SyntaxError: Unexpected token import
at Object.exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:513:28)
at Module._extensions..js (module.js:550:10)
at Object.require.extensions.(anonymous function) [as .js] (C:\Users\35824\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babel-register\lib\node.js:166:7)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (config.js:10:1)
npm set registry 本地仓库
npm adduser --registry 本地仓库
npm publish
编译用的 babel,
我怀疑是在引入后不识别模块里的node_modules了,
那么是我发布的方式不对,还是需要什么命令转换?
巴扎黑2017-04-17 14:03:12
"编译用的 babel"是,指的是类库项目iota-user
,还是当前引用类库的项目iota-api-server-scaffold
?
iota-user
项目的package.json
里的main
字段指的是什么文件?babel
编译后的,还是编译器前的源文件?
建议你先完整的读完package.json,然后也给你个参考项目:angular-baidu-map。我源码是用es6
写的,通过webpack + babel
编译,在npm
发布编译后的文件。main
字段指向dist/angular-baidu-map.js
(编译后的文件)。
当别人也在babel
或者其他支持ES6
模块规范的编译环境下,都可以用import {ngBaiduMap} from 'angular-baidu-map';
来引用我的模块
伊谢尔伦2017-04-17 14:03:12
{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/
}
这是通常的babel配置
, 发现没有, 把node_modules
文件夹过滤了, 也就是说npm方法安装的依赖, 是不会走babel编译的...而import
不经过编译, 是不能直接执行的...
如果npm上的发布能编译后再发布最好, 如果是别人的项目, 没办法改, 那么npm下来了, 挪动项目文件夹里再引用.
天蓬老师2017-04-17 14:03:12
babel 或其他转换的模块参见 @leftstick 的答案
原生支持是一个复杂的话题,先把这篇文章读过再说:https://medium.com/@nodesource/es-modules-and-node-js-hard-choices-2b6995e4d491#.j7lkau8kq