我刚开始研究Javascript所提供的所有花哨的东西,主要是Webkit
。我有一个体面的大小的应用程序,它使用揭示模块模式。这些模块调用其他模块的公共函数来进行计算并返回结果。使用Webpack来要求显示模块
使用这种模式很有效,直到我开始考虑在我的html页面中包含数十个脚本。所以,在这里,我们是...
为了这个问题的目的,我做了一个更简单的应用程序来演示什么是我的错误。
我必须包含自己的文件中的两个JavaScript模块:
我试图做的是使用内one.js
从two.js
sayHello
功能。
所以,首先,我安装了Webpack
和exports-loader
并创建了以下配置文件:
module.exports = {
entry: './index.js',
output: {
path: __dirname,
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.jsx$/,
loader: "babel-loader",
query: {
presets: ['es2015']
}
}
]
}
}
index.js
是我的入境文件,只是包含下面一行:
require('./one.js');
现在,当试图运行此代码,我在控制台中收到以下错误:
Uncaught ReferenceError: two is not defined
随着一点点的挖多,我发现,试图导入two.js
当我编译bundle.js
文件被扔以下错误:
throw new Error("Module parse failed: \testing_env\webpack\two.js 'import' and 'export' may only appear at the top level (2:2)\nYou may need an appropriate loader to handle this file type.
很显然,我做错了什么,我只是不知道是什么。我已经尝试了exports-loader
和babel-loader
,但没有喜悦。
我应该使用哪个加载器来解析模块依赖关系?
任何帮助将不胜感激。
如果我有多种功能,我想从一个出口?你可以像我在我的文章中所说的那样,显示一个例子 – Sam
,不管你把'module.exports'放在什么时候,这就是你在另一个模块中require()它时会得到的。要导出多个函数,只需执行'module.exports.fn1 = ...; module.exports.fn2 = ...'然后您将需要()一个obejct与您导出的所有函数。 'const fn1 = require('./ a')。fn1;' –