我对任务运行器和捆绑器世界有点新意,并且经历了类似的事情
Grunt,Gulp,Webpack,Browserify
,我觉得他们之间没有太大区别.换句话说,我觉得Webpack可以完成任务运行员所做的一切.但是我仍然有一个巨大的例子,其中gulp和webpack一起使用.我无法弄清楚原因.
对此我不熟悉,我可能会把事情弄错.如果你能指出我所缺少的东西,那就太好了.欢迎任何有用的链接.
提前致谢.
我正在使用(JavaScript)ES6
语法通过babel
转换器和preset-es2015
插件以及semantic-ui
样式编写一个新的应用程序.
import * as stylesheet from '../assets/styles/app.scss';
import * as jquery2 from '../dist/scripts/jquery.min';
import * as jquery3 from '../node_modules/jquery/dist/jquery.min';
console.log($('my-app'));
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="fr">
<head>
<body>
<script src="dist/app.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
.
??? app/
? ??? index.js
??? assets/
??? dist/
? ??? scripts/
? ? ??? jquery.min.js
??? index.html
??? node_modules/
? ??? jquery/
? ? ??? dist/
? ? ? ??? jquery.min.js
??? package.json
??? tests/
Run Code Online (Sandbox Code Playgroud)
… …
Run Code Online (Sandbox Code Playgroud) 我试图在Gulp中uglify Browserify的输出,但它不起作用.
gulpfile.js
var browserify = require('browserify');
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
gulp.task('browserify', function() {
return browserify('./source/scripts/app.js')
.bundle()
.pipe(source('bundle.js'))
.pipe(uglify()) // ???
.pipe(gulp.dest('./build/scripts'));
});
Run Code Online (Sandbox Code Playgroud)
据我所知,我不能按照以下步骤进行.我是否需要在一个管道中制作以保留序列?
gulp.task('browserify', function() {
return browserify('./source/scripts/app.js')
.bundle()
.pipe(source('bundle.js'))
.pipe(uglify()) // ???
.pipe(gulp.dest('./source/scripts'));
});
gulp.task('scripts', function() {
return grunt.src('./source/scripts/budle.js')
.pipe(uglify())
.pipe(gulp.dest('./build/scripts'));
});
gulp.task('default', function(){
gulp.start('browserify', 'scripts');
});
Run Code Online (Sandbox Code Playgroud) 我通过apt-get install和所有依赖项安装了节点js和npm,然后我安装了browserify
npm install browserify -g
Run Code Online (Sandbox Code Playgroud)
它经历了整个过程,看起来它安装得正确,但是当我尝试按照这个演练做一个简单的捆绑
我收到错误:
/ usr/bin/env:node:没有这样的文件或目录
我一直在使用babel-node和browserify开发一个带有babelify变换的网站,以支持ES6语法.
我只是想知道,我可以在生产中运行它, babel-node server
而不是 node server
在节点中运行ES6还有什么其他选项吗?
以下是我为构建运行并在开发中启动的命令
// npm run build
browserify -t [babelify] client.js > public/js/bundle.js",
// npm start
babel-node server.js"
Run Code Online (Sandbox Code Playgroud)
这是我的开发依赖项
"babel": "^4.0.1",
"babelify": "^5.0.3",
"browserify": "^8.0.3"
Run Code Online (Sandbox Code Playgroud) 我是nodejs和browserify的新手.我从这个链接开始.
我有文件main.js,其中包含此代码
var unique = require('uniq');
var data = [1, 2, 2, 3, 4, 5, 5, 5, 6];
this.LogData =function(){
console.log(unique(data));
};
Run Code Online (Sandbox Code Playgroud)
现在我用npm安装uniq模块:
npm install uniq
Run Code Online (Sandbox Code Playgroud)
然后我使用browserify命令将从main.js开始的所有必需模块捆绑到一个名为bundle.js的文件中:
browserify main.js -o bundle.js
Run Code Online (Sandbox Code Playgroud)
生成的文件如下所示:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var unique = require('uniq');
var data = [1, 2, 2, 3, 4, 5, 5, 5, 6];
this.LogData =function(){
console.log(unique(data));
};
},{"uniq":2}],2:[function(require,module,exports){
"use strict"
function unique_pred(list, compare) …
Run Code Online (Sandbox Code Playgroud) 刚开始使用browserify,但我找不到如何让它溢出缩小输出的文档.
所以我看起来像:
$> browserify main.js > bundle.js --minified
Run Code Online (Sandbox Code Playgroud) 我正在尝试让我的Browserify/Babelify/Gulp在我的项目中工作,但它不会占用传播操作符.
我从gulpfile中得到了这个错误:
[SyntaxError: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js: Unexpected token (16:8) while parsing file: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js]
Run Code Online (Sandbox Code Playgroud)
这是我的gulpfile.js
var gulp = require('gulp');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var buffer = require('vinyl-buffer');
var babelify = require('babelify');
gulp.task('build', function () {
return browserify({entries: './src/client/app.js', extensions: ['.js'], debug: true})
.transform(babelify, {presets: ['es2015', 'react']})
.bundle()
.on('error', function (err) {
console.error(err);
this.emit('end');
})
.pipe(source('app.min.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./public/js'));
});
gulp.task('default', ['build']);
Run Code Online (Sandbox Code Playgroud)
我试图创建一个.babelrc文件,但它做同样的事情.当我删除传播操作符时,我的脚本工作.
这是发生Unexpected令牌的文件(非常简单).
import utils from '../utils/consts';
const …
Run Code Online (Sandbox Code Playgroud) const gulp = require('gulp');
const $ = require('gulp-load-plugins')();
const source = require('vinyl-source-stream');
const browserify = require('browserify');
gulp.task('build', () =>
browserify('./src/app.js').bundle()
.pipe(source('app.js'))
.pipe(gulp.dest('./build')) // OK. app.js is saved.
.pipe($.rename('app.min.js'))
.pipe($.streamify($.uglify())
.pipe(gulp.dest('./build')) // Fail. app.min.js is not saved.
);
Run Code Online (Sandbox Code Playgroud)
当file.contents是流时,当前不支持管道到多个目标.这个问题的解决方法是什么?
升级到版本后0.14.2
,我看到错误和建议使用ReactDOM.render()
而不是React.render()
,但我从哪里导入它?
当我不导入它并且只是按原样运行时,它会显示为undefined
.它是内置功能还是第三方库?
browserify ×10
javascript ×7
node.js ×6
gulp ×4
babeljs ×2
ecmascript-6 ×2
bundler ×1
gruntjs ×1
import ×1
jquery ×1
npm ×1
reactjs ×1
semantic-ui ×1
uglifyjs ×1
webpack ×1