我正在尝试ES6,我使用gulp构建和babel转换为ES5.输出不在节点中运行,只是从带有标记的.htm文件链接.我想我需要补充一下
<script src='require.js'></script>
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我试图导入/导出.
////////////////scripts.js
import {Circle} from 'shapes';
c = new Circle(4);
console.log(c.area());
/////////////////shapes.js
export class Circle {
circle(radius) {
this.radius = radius;
}
area() {
return this.radius * this.radius * Math.PI;
}
}
Run Code Online (Sandbox Code Playgroud)
错误是
Uncaught ReferenceError: require is not defined
Run Code Online (Sandbox Code Playgroud)
参考这个(在gulp之后的.pipe(babel())之后)
var _shapes = require('shapes');
Run Code Online (Sandbox Code Playgroud) 考虑以下示例代码(也许我做错了?)
var FlareCurrency = {
};
export {FlareCurrency};
Run Code Online (Sandbox Code Playgroud)
我有以下任务:
gulp.task("compile:add-new-currency-minified", function(){
return gulp.src('src/add-new-currency/**/*.js')
.pipe(babel())
.pipe(concat('Flare-AddNewCurrency.js'))
.pipe(uglify({"preserveComments": "all"}))
.pipe(gulp.dest('dist/minified/'));
});
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到以下内容:
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var FlareCurrency={};exports.FlareCurrency=FlareCurrency;
Run Code Online (Sandbox Code Playgroud)
为了它的乐趣,我想在控制台中运行它,是的我知道它什么都不做,但我没想到会看到这个:
Uncaught ReferenceError: exports is not defined(…)
Run Code Online (Sandbox Code Playgroud)
非缩小版:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var FlareCurrency = {};
exports.FlareCurrency = FlareCurrency;
Run Code Online (Sandbox Code Playgroud)
抛出同样的错误.想法?
是否可以使用与ReactRouter的反应,而不使用browserify或webpack.我正在关注http://rackt.github.io/react-router的文档,他们需要react和react-router(require('react-router');).如果我使用browerifly我生成的捆绑大约是1MB文件大小,这听起来很多.
那么是否可以通过包含来自像https://cdnjs.cloudflare.com/ajax/libs/react-router/0.13.3/ReactRouter.js这样的CDN的编译JS来实现反向传输,而不是自己捆绑所有需求?如果我尝试使其与CDN一起使用,我会收到一条未定义Route的错误.但它看起来像是在cdn文件中导出的.
我想编译我的JSX/ES6反应组件包括ReactRouter并从cdn反应JS文件,只将我的组件捆绑到一个新的js文件中.
这是可能的,还是浏览器和webpack正确设置项目的方法?(我看了几个github回购).我有些疑惑,因为http://rackt.github.io/react-router/上没有安装指南
喜欢这个伪html:
<head>
CND :include react, react-router
my code combinded.js
</head>
Run Code Online (Sandbox Code Playgroud) 我有我正在写在ES2015并用巴别6. transpiling的ES2015源代码是在NPM包/src,分成模块/src/core,/src/commands等.因为它是一个CLI工具,所以入口点在/src/bin/app.js.如果我运行babel-node src/bin/app.js它按预期工作.
理想情况下,我想全局安装此工具(如grunt-cli),因此我将整个包转换为单个有效的JS(ES5)文件babel src -o /lib/app.js.但是,如果我尝试运行该文件,则会尝试从相对路径中请求模块时出现错误,并且无法找到这些模块,因为它们都已合并到app.js.错误是:
$ node_modules/babel-cli/bin/babel-node.js lib/app
module.js:328
throw err;
^
Error: Cannot find module '../commands/index'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/usr/local/lib/node_modules/app/lib/app.js:19:14)
at Module._compile (module.js:398:26)
at Module._extensions..js (module.js:405:10)
at Object.require.extensions.(anonymous function) [as .js] (/Users/me/dev/app/node_modules/babel-register/lib/node.js:138:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
Run Code Online (Sandbox Code Playgroud)
我.babelrc只是:
{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
这应该工作,还是我需要更多配置Babel?备份计划是简单地将整个/src文件夹转换为/lib并发布所有内容,但单个文件会更好.
javascript ×3
babeljs ×2
ecmascript-6 ×2
browserify ×1
ecmascript-5 ×1
gulp ×1
node.js ×1
react-router ×1
reactjs ×1
webpack ×1