我有以下文件夹结构
src/
index.js
lib/
test.js
dist/
examples/
example.js
src/lib/test.js
export default class Test {}..
src/index.js
import App from './lib/test.js'
export default App
示例/示例.js
import {App} from './../..'
=> App is undefined
如何将我的索引.js设置为入口点并将我的应用导出到入口点?
编辑: 我正在使用 babel 节点作为转译器并启动它
nodemon test.js --exec babel-node --presets es2015,stage-2 --watch ./../..
Node本身不支持import
和export
。
如果你想使用这种语法,你需要使用像 Babel 这样的转译器。
节点的方式是使用module.exports
和require()
。
有关详细信息,请参阅此处:
是否可以- 将 Babel npm 包用于节点.js服务器应用程序
- javascript - 为什么有同步和异步模块的规范?
- 从 Node.js 中的模块导出函数的语法是什么?
更新
这里:
export {default as App} from './src/lib/test.js'
您不是从"导出 - 而是从中导入。
也许你的意思是:
import App from './src/lib/test.js';
然后你可以依次导出它。
使用正常的节点语法,它将是:
src/lib/test.js
class Test {
// ...
}
module.exports = { Test };
src/index.js
const { Test: App } = require('./lib/test.js');
示例/示例.js
const { App } = require('../src');
另请注意,根据您的目录结构,您的路径不正确:它应该是./lib/test.js
而不是./src/lib/test.js
,../src
而不是./../..
我只是将 src/index.js 作为 main 放在 package.json 中,然后只运行 nodemon,而无需监视参数。
默认情况下,nodemon 监视当前工作目录。如果要控制该选项,请使用 --watch 选项添加特定路径
路径也是这样的:
src/lib/test.js
export default class Test {}
src/index.js
export {default as App} from './lib/test.js'
示例/示例.js
import {App} from '../'