各位的 Nodejs 项目用 babel 或者 Webpack 的多吗?
各位的 Nodejs 项目用 babel 或者 Webpack 的多吗?
Webpack 估计不常见毕竟那是前端资源的模块打包工具,但我还真见过有项目用的。那 babel 呢?我们现在的项目是基于 Node 6.10 的,虽然没有 es6 的模块,没有 async 和 await,但大部分需要的 es6 功能 6.10 都支持了,所以我是比较倾向不上 babel 的,请问各位呢?如果上的话是基于什么考虑呢?
用,为什么不呢?
把各种刚进的草案的、没进草案的、是标准的、不是标准的特性大量用在生产环境不正是 JavaScript 的魅力所在吗 :)
不过这样说的话,不如上 Node 8.0 吧,那样就不用 babel 转换 async/await 了
我就说一个 import export 就得用 babel ……
webpack 没法用,和浏览器运行 js 完全不一样,本来一个一个路径、目录好好的,打成一个单文件,各种问题。
所以只用了 babel。
想不明白,为什么要用 babel 而不升 node 版本呢?
node 版本 8.0,基本不会用到这两个,只想说 async/await 太好用了~
要么升版本 要么用 babel
8.0 还是不支持 import。现在用 babel 就用一个 babel-plugin-transform-es2015-modules-commonjs 插件就够了。
发布的时候就多了一个命令而已:./node_modules/.bin/babel --no-babelrc --plugins transform-es2015-modules-commonjs ./src --out-dir ./web
支持 import 是不是要等 V8 升版本啊?
https://github.com/xiadd/zhuishushenqi 私人用到了 babel+koa 但是其实没太大必要
做外包会用 webpack,每次更新就丢过去几个文件让他覆盖重启就好了。自己公司的项目不会用。
我们项目都是基于想一个版本的 LTS 写的,等写好了就变成真的 LTS 了
我觉得主要是两点:
1. nodejs 版本之间在 es 语法支持能力上有差异,当然也可以选择更新 node 版本,但也有人会不想要在开发的时候考虑太多运行环境的问题(虽然还是要考虑 api 的问题)
2. 如果部分代码同时也会运行在浏览器上的话( universal js ),肯定是要配置编译的,那干脆一起编译好了,两边运行的代码理论上也更加一致
肯定也会有人考虑性能的问题: http://incaseofstairs.com/six-speed/?utm_source=ESnextNews.com&utm_medium=Weekly%20Newsletter&utm_campaign=Week%2010
只在前端部分用 webpack,后端只用 TypeScript (仅需要把新版特性编译到 ES5, 不需要 bundle)
不用 babel 跟咸鱼有什么区别,不过 webpack 在 node 上用的经验不是太多
套上 TypeScript,我觉得比 babel 好很多
webpack 很好用 嗯前后端都好用 初次配置麻烦 嗯 webpack 配置都麻烦
希望不是我看错,在 Node.js 环境下,es6 新特性对比 es5 性能落后不少啊?
为什么不用 typescript 呢
后端没必要用 webpack
我觉得没看错:) 我记得最近几次 v8 引擎的发版强调的最多的就是 es6 特性的性能: https://v8project.blogspot.jp/ 。拍着脑袋想,原因可能有两点:
1. babel 编译本身是不(那么)完整的实现,像是 es2015-loose 这样注重性能忽略边缘特性的编译方式(我并不清楚)
2. 现在的 v8 更擅长优化 es5 代码的性能
惨,目前项目全面 es6,没有考虑在 6.10.1 版本下的性能问题。看来要测试一下了
大多时候性能都不是重点,语法上的这点性能大多也不是真正的性能瓶颈
node 用的 7.7.0 版本,不用 8 是因为 node-sass 不支持 8。前端肯定是得用 webpack 了,业务是 react 全家桶。每次改代码最头疼的就是编译速度了,太慢了
-=- 不用 babel 怎么愉快的写,高版本会有兼容性问题啊。
似乎现在 node-sass 支持 Node.js 8 了哦?
确实啊,前一阵还没支持呢
node 项目为啥要用 import / export,想不通,node 项目从来不用 babel
见过后端库有用 webpack 的,虽然是一小部分,也记不清是哪些了
babel 我是用的,开发时在入口文件做 register,上线前写个脚本编译一下,美滋滋
最近用了 node V8.0.0 再也不用上 babel 了
赞
在Node.js项目中,Babel和Webpack的使用是相当普遍的。
Babel主要用于将ES6+的代码转换为向后兼容的JavaScript代码,以便在旧版浏览器或Node.js环境中运行。例如,通过Babel,可以使用import和export语法以及一些ES6、ES7的新特性,而不用担心Node.js环境不支持。一个简单的Babel配置示例(.babelrc文件)如下:
{
"presets": ["@babel/preset-env"]
}
而Webpack则是一个前端资源的打包工具,它可以将JavaScript、CSS、图片等资源当成一个模块进行打包,从而减少HTTP请求次数,提高页面加载速度。Webpack还可以处理高级JavaScript语法,如TypeScript、ES6等,将其转换为浏览器可识别的语法。以下是一个基本的Webpack配置文件(webpack.config.js)示例:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
总的来说,Babel和Webpack在Node.js项目中都有广泛的应用。Babel专注于语法转换,而Webpack则侧重于资源打包。根据项目需求,可以选择单独使用它们,也可以将它们结合使用,以充分利用各自的优势。