- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的脑袋疼,我刚刚阅读了大量不同的教程,但他们对如何使这项工作的想法似乎有所不同(或变化非常快)。
背景:
我已经开始学习 ReactJs.NET,我想开始编写 ES2015 并使用 Require('SomeComponent')
语句导入模块(babel 还没有导入/导出)。
通过使用 React.NET 附带的 BabelBundle
,我在 ES2015 部分工作得很好
bundles.Add(New BabelBundle("~/bundles/main").Include(
"~/Scripts/test.jsx"
))
我想为一个项目使用一些额外的组件(多选),获得和使用它的最简单方法似乎是安装 node + npm,然后使用 require
导入那个组件。
这让我开始用 gulp 替换 MVC 捆绑,并使用 gulpfile 将我的文件转换/组合成一个可用的 js 文件(如果我在服务器上预渲染第一个 View ,它比 .NET 捆绑效果更好)无论如何)。
我需要在我的 gulpfile.js 中做什么,但我不是 100% 确定我需要按什么顺序做,或者我应该如何在我的 gulpfile 中描述它:
require
标签)我走的路是否正确?似乎有太多的选择,我对它们都感到很困惑,而且似乎是一个快速变化的景观..
最佳答案
My brain hurts [...] there seems to be so many options and I am getting quite confused by them all and what seems to be a rapidly changing landscape..
这就是所谓的“JavaScript 疲劳”。这是一种常见的痛苦。
Am I even going down the right path?
虽然所有人都必须努力解决这个存在问题,但研究表明,JavaScript 开发人员对此感到烦恼的程度要高出 110%。如果您决定继续沿着这条道路前进,值得深思。
Require('SomeComponent')
require()
(小写)。
babel doesn't import/export yet
通过适当的插件/预设,Babel 确实可以将 ES2015 模块语法(import|export
)编译到各种 ES5 模块系统,包括 Node 的 require()
。但是,您现在最好只使用 Node 模块系统。
Parse with browserify for (
require
tags)
require()
调用 -- 它是一个函数,而不是一个标签。
为此您根本不需要 gulp。这是一个基本的例子,说明如何使用 Browserify 开始这个工作:
var babelify = require("babelify");
var browserify = require("browserify");
var fs = require("fs");
function bundle () {
return browserify("./entry-module", {
// Enable source maps for development
debug: process.env.NODE_ENV !== "production",
})
.transform(babelify, {
presets: ["es2015", "react"]
})
.bundle()
.pipe(fs.createWriteStream("./bundle.js", "utf8"));
}
这将运行 Babel(通过 Babelify),并将其配置为处理 ES2015 语法和 JSX。您可以将 Babel 配置放在 .babelrc
文件中,而只需使用 transform(babelify)
。
Browserify 转换在解析 require()
调用之前运行。所以当 Browserify 需要分析代码时,它将是 ES5。
默认情况下,包含 JSX 的文件可以是 .js
或 .jsx
。
FWIW es2015
预设将编译 import|export
到 Node 模块。
如果你想与 gulp 集成,那么你可以这样做:
gulp.task("bundle", bundle);
Am I even going down the right path?
有很多路径。但是使用 Babel 是许多人成功采用的路径的一部分。使用 Browserify 也是如此(但是,例如,有些人更喜欢 Webpack)。如果您从像我所说明的那样开始,它应该会让您脱离实际,并且在那一点上看起来应该更容易理解。
您也可以查看我的 miniminirepro/babelify repo 。它的目的是作为一个模板,供人们创建最少的错误复制,但它作为一个 hello world 级别的示例,说明如何与 Browserify 捆绑在一起并使用 Babel 进行转换。
关于asp.net-mvc - ReactJs.Net、Gulp、Babel、Browserify MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178394/
我有 带有插件系统的软件包。每个插件都是一个包 可以通过调用 use 方法来加载插件。并将插件导出作为参数传递: package = require('thePackage').use( requir
我知道 browserify 可以通过转换来使用 UMD 模块,但是当我想使用 browserify 构建一个库时,我该如何构建一个 UMD 模块?我可以使用任何转换吗? 最佳答案 如果您想使用 br
我有 third-party-module-b使用 third_party_module_a全局并拥有 require('third-party-module-a'); 在入口点。 问题是third-
我正在使用 Browserify 和 Grunt 来捆绑我们的 RendrJS webapp。我想分析这个包,看看它包含哪些模块,看看是否有多余的代码。这可能会发生,因为在 Rendr 中,一些 js
在 browserify 手册中,exclude part ,它给出了一个使用排除的例子: $ npm install jquery $ browserify -r jquery --standalo
在我的前端代码中,我使用 require()引入依赖于不同版本的 Underscore.js 的库。结果,当我使用 browserify 将所有内容捆绑在一起时,输出包含多个 Underscore 副
我正在使用 SpineJS(它导出一个 commonjs 模块),它需要在全局范围内可用,因为我在任何地方都使用它,但似乎我必须这样做 Spine = require('spine')在每个使用 Sp
假设我有一个模块,其源代码不是 ECMA 5(例如,它是 Coffescript 或 Typescript 或其他),并且以带有源映射的编译形式分发。如何将此源映射包含在 Browserify 包中?
我想创建一个独立的 browserify 包,它将导出的对象直接附加到 window 对象,而不是嵌套在附加到 window 的包装器对象下。 这样做,browserify 会忽略窗口: browse
当您将代码与 Browserify 捆绑在一起时,您使用的每个模 block 都内联在结果输出中,并标有其本地文件路径。因此,您可以在捆绑代码中看到文件路径字符串。 但理论上,这些字符串都可以重写为“
我需要将一些模块强制放入我的包中,因为它们是通过如下代码动态需要的: var moduleName = "someModule"; var myModule = require(moduleName)
我正在尝试通过使用 browserify-shim 将某些模块从包中填充出来来重构使用 Browserify 的库。具体来说,该库使用 require("codemirror") 但我想提供一个不包含
我在新项目中使用了 browserify。到目前为止,它运行得非常好。 不过我有一个大问题。如何分别调试每个 js 文件。它将所有文件捆绑在一起,并在发生错误时指向捆绑。 我正在使用 chrome 和
来自 watchify 的文档, 我懂了: When creating the browserify instance b you MUST set these properties in the c
使用 browserify,我试图要求一个已经浏览器化的模块,但是包无法解析已经浏览器化的模块。 例如,我有一个文件 bundle-1.js 已与命令捆绑在一起: browserify -r ./bu
关于 external requires 的 Browserify 文档部分展示如何使包中的模块可用于全局环境: browserify -r through -r duplexer -r ./my-f
现在,gulp-browserify is no longer supported我正在寻找一个简单的教程,如何现在使用带有 gulp 的 browserify。 This似乎是一种选择,但它仍然相当
我是 Nodejs 和 browserify 的新手。我从这个开始link . 我有文件 main.js,其中包含此代码 var unique = require('uniq'); var data
我最近从 Grunt 过渡到 Gulp。但是我还是个新手,谁能告诉我使用 Gulp-Browserify 和只使用 Browserify 之间的区别是什么? 我知道 Gulp-Browserify 现
描述:我有 package.json 和 bower.json 用于处理我当前架构中的依赖项。我应该在哪个文件中添加 “jquery.slider(版本 1.1.0)”以及怎么做? 目前,我已经在 b
我是一名优秀的程序员,十分优秀!