Api*_*oud 3 javascript ecmascript-6 webpack babeljs
下午好,
这与我在webpack 的 github上报告的问题相同,但我怀疑我可能做错了什么,因此在这里提出一个问题。
我正在尝试配置webpack 2Babel,要求之一是转译内置插件,例如Symbol.
尽管现在工作正常,但当我尝试使用 webpack 和 babel 的转换运行时时,我无法使用exports *.
输入文件(src/index.js):
export * from './secondFile'
Run Code Online (Sandbox Code Playgroud)
第二个文件.js:
export let TESTSYMBOL = Symbol('test');
export let TESTSYMBOL2 = Symbol('test2');
Run Code Online (Sandbox Code Playgroud)
webpack.config.js(仅复制相关部分):
module: {
rules: [
{
test: /\.jsx?$/,
// Skip any files outside of `src` directory
include:path.resolve(__dirname, 'src'),
use: {
loader: 'babel-loader',
options: {
presets: ["es2015", "stage-3"],
plugins: ['transform-runtime']
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
脚本:
"webpack -d --config config/webpack.config.js"
Run Code Online (Sandbox Code Playgroud)
输出文件:要点
例外:
Uncaught ReferenceError: exports is not defined - at Object.defineProperty(exports, "__esModule", {
Run Code Online (Sandbox Code Playgroud)
开发依赖:
依赖项: - “babel-runtime”:“6.23.0”
谢谢你的帮助!
看来问题出在include. 由于某种原因,我无法使用path.resolveor path.join。webpack文档有这样的例子。
如果 webconfig 如下,那么它就可以正常工作:
module: {
rules: [
{
test: /\.js$/,
include: [
/src/
],
// or exclude: [/node_modules/],
use:
{
loader: 'babel-loader',
options: {
plugins: ['transform-runtime'],
presets: ['es2015', 'stage-3']
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
不管怎样,现在 存在一个问题exports not defined,可以通过在 es2015 预设中将 module 设置为 false 来解决(感谢 Github 上的 Vanuan 的建议):
presets: [['es2015', { modules: false }], 'stage-3'],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |