mik*_*eym 12 javascript webpack babeljs
我是Webpack的新手并且在本教程之后遇到了问题.
看来webpack.config.js没有设置babel-loader正确,但我不sure.In我看到下面的错误控制台:
bundle.js:49 Uncaught SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
哪个指的import sortBy from 'lodash/collection/sortBy';是我的行index.js.所以我认为这是一个babel转换问题(不允许importES6 的语法?)
这是完整的index.js文件
import sortBy from 'lodash/collection/sortBy';
import {users} from './users';
import {User} from './User';
sortBy(users, 'name')
.map(user => {
return new User(user.name, user.age);
})
.forEach(user => {
console.log(user.display);
});
Run Code Online (Sandbox Code Playgroud)
而且webpack.config.js看起来是这样的:
module.exports = {
entry: './src/index.js',
output: {
path: './public/',
filename: 'bundle.js'
},
devServer: {
contentBase: './public/'
},
module: {
loaders: [
{test: /\.js$/, exclude: /node_modules/, loader: 'babel'}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我已经搜索了其他问题,这些问题看起来与这里和这里的问题有关,还有谷歌搜索,但还没有找到解决方案或原因我还没有得到错误.也许教程已经过时.如何解决这个问题的任何指导将非常感谢!
UPDATE
按照Alexandre Thebaldi在下面发布的答案中列出的步骤解决了特定的babel加载错误.
但是,发生了新的错误 -
Module not found: Error: Cannot resolve module 'lodash/collection/sortBy'
如果您正在完成本教程并遇到此错误,则很可能是由于路径不正确导致的index.js,特别是lodash/collections目录似乎不再存在.我设法通过简单地改变路径来解决第二个错误lodash/sortBy.
注意
在更改之前,请务必先检查lodash是否已安装node_modules并且路径是否正确.
Ale*_*ldi 21
首先,确保您使用以下方法安装了babel核心和装载程序:
$ npm install --save-dev babel-loader babel-core
所以,正确的加载程序babel-loader,而不是babel.配置应该是:
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
]
}
Run Code Online (Sandbox Code Playgroud)
实际上你需要告诉babel转换你的代码.
在6.x之前,Babel默认启用了某些转换.但是,Babel 6.x不附带任何启用的转换.您需要明确告诉它要运行什么转换.最简单的方法是使用预设,例如ES2015预设.你可以安装它.
$ npm install babel-preset-es2015 --save-dev
Run Code Online (Sandbox Code Playgroud)
预设安装后,您必须启用它.
.babelrc在项目根目录中创建配置并启用一些插件.假设您已经安装了ES2015 Preset,为了启用它,您必须在
.babelrc文件中定义它,如下所示:
{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
Babel设置页面中的详细信息.
| 归档时间: |
|
| 查看次数: |
51595 次 |
| 最近记录: |