首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack和古普-巴贝尔玩得不太好

Webpack和古普-巴贝尔玩得不太好
EN

Stack Overflow用户
提问于 2016-10-15 07:31:11
回答 1查看 529关注 0票数 0

我正在构建一个gulp脚本来处理我的ES2015代码,最终使用的是react,但是它根本不起作用。丑陋是在抛出错误。(stream.js:74抛出er;//管道中未处理的流错误。)一旦我查看了构建,很明显,ES2015代码没有被转换。

这一问题的大多数解决方案都涉及缺少的预设。我确保包括了babel-preset-es2015。我有一个.babelrc文件,内容如下:

代码语言:javascript
复制
{
   "presets": ["es2015", "react"]
}

没有它,我的`gulpfile.babel.js就无法运行。

我试图处理的文件非常简单:

代码语言:javascript
复制
// index.js
let bobby = "bobby"
console.log(bobby + ' Drink rum.')

当它变成早期的JavaScript时,let应该被var取代。也许我的gulpfile.babel.js有什么问题

代码语言:javascript
复制
import gulp from 'gulp';
import gulpLoadPlugins from 'gulp-load-plugins';
import runSequence from 'run-sequence';
import babel from 'gulp-babel';

// load all gulp-* plugins in node_modules
const plugins = gulpLoadPlugins()

gulp.task('default', () => {
  runSequence('build', 'copy:index')
})

gulp.task('build', () => {
  return gulp.src('src/**/*.js')
    .pipe(babel())
    .pipe(plugins.webpack())
    // .pipe(plugins.uglify())
    .pipe(plugins.rename('bundle.js'))
    .pipe(gulp.dest('dist/'))
})

gulp.task('copy:index', () => {
  gulp.src('src/index.html')
    .pipe(gulp.dest('dist/'))
})

我的gulp版本是3.9.1我的节点版本是6.2.0

到目前为止,这些是我的依赖关系:

代码语言:javascript
复制
  "dependencies": {
    "babel-core": "^6.17.0",
    "babel-plugin-transform-react-jsx": "^6.8.0",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-react": "^6.16.0",
    "babel-register": "^6.16.3",
    "gulp": "^3.9.1",
    "gulp-babel": "^6.1.2",
    "gulp-filter": "^4.0.0",
    "gulp-load-plugins": "^1.3.0",
    "gulp-rename": "^1.2.2",
    "gulp-uglify": "^2.0.0",
    "gulp-webpack": "^1.5.0",
    "react": "^15.4.0-rc.4",
    "react-dom": "^15.4.0-rc.4",
    "run-sequence": "^1.2.2",
    "webpack": "^1.13.2"
  }

UPDATE:所以我去为Babel创建了一个单独的任务,它可以工作。当我加上丑化和重命名它是有效的,但当我添加Webpack,它有问题。显然,Webpack的表现不太好。还有人在和Webpack一起工作时遇到过这样的麻烦吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 03:44:05

让我问一下,你真的需要webpack和古普-巴贝尔打得很好吗?我们知道webpack和巴贝尔玩得很好,总的来说,从我到目前为止所读到的每一本书来看,webpack的表现都不是很好。webpack的插件有很多奇怪的地方。到目前为止,我发现让webpack和gulp一起工作的最好资源是这里

到目前为止,我的建议是,忘记试图让webpack和迪普在一起玩得很好。相反,当你的js发生变化时,就让webpack喝一口吧。这是我的装备:

代码语言:javascript
复制
var webpack = require('webpack');
var path = require('path');

module.exports = {
  entry: './assets/js/index.js',
  devtool: 'source-map',
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader'
      },

... [other webpack things] ...

在我的package.json中,我设置了一个使用交叉env运行webpack的脚本。

代码语言:javascript
复制
 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "wp-dev": "cross-env NODE_ENV=development webpack --progress --hide-modules",
    "wp-build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
  },

现在,按照phase2technology.com的建议,下面是我的任务:

代码语言:javascript
复制
gulp.task('webpack', (cb) => {
  exec('npm run wp-dev', function(err, stdout, stderr){
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
});

真的,我认为这里的关键是让webpack做捆绑,并使用吞咽来执行任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40056364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档