【发布时间】:2016-02-06 07:03:50
【问题描述】:
我正在使用 ES6 中的 node 做一个项目,该项目使用 babel-node 运行。现在我正在尝试以更生产的方式实现 babel,并尝试了两次。
Webpack babel-loader 配置如下:
module.exports = {
entry: './src/cloud/main.js',
devtool: 'source-map',
output: {
path: './src/static/build',
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loaders: [
'babel-loader?presets[]=es2015',
],
},
{
test: /\.css$/,
loaders: [
'style-loader',
'css-loader',
],
},
{
test: /\.html$/,
loaders: [
'raw-loader',
],
},
],
},
}
它开始抱怨 main.js 中的 import 语句并使其静音,我使用了?presets[]=es2015,我在一个类似的问题中找到了它。然后问题就来了,它过滤到带有以下消息的导入语句到 node_modules:
./~/socket.io/lib/index.js 中的错误 找不到模块:错误:无法解析模块“fs”
我的另一种方法是使用这样的注册钩子:
require('babel-core/register')({
ignore: /node_modules/,
});
require('./main.js');
但它抛出了这个消息: 从“快递”进口快递; ^^^^^^
SyntaxError: 意外的保留字
//main.js - 简化
import express from 'express'
const app = express()
const server = app.listen(port, () => {
console.log(`Listening at http://${server.address().address === '::' ? 'localhost' : server.address().address}:${server.address().port}`)
})
【问题讨论】:
-
看看这个关于运行 Babel 的答案。 stackoverflow.com/questions/30921806/…
标签: node.js express webpack babeljs