什么"浏览器":{"转换":[" browserify-shim" ] } 意思?

时间:2015-03-09 07:04:30

标签: jquery npm gulp browserify

我知道浏览器是什么以及browserify-shim是什么。但我不懂语法。

我已经在package.json

中指定了以下一个
"browserify-shim": {
    "jquery": "$"
  }

- 这意味着,将jQuery转换为可请求的模块。那么“转换”的目的是什么:[“browserify-shim”]在这里?

无法从文档中找出答案。谁能帮我理解?

修改

如果我的问题不明确,请加入

“browserify”: { “transform”: [ “browserify-shim” ] } 

这段代码是什么意思?变换做了什么?

2 个答案:

答案 0 :(得分:1)

编辑:

转换是添加到browserify以修改browserify进程的进程。列出了其他一些流行的转换here

原始(错误)回复:

你正在做的是从NPM(或package.json的浏览器部分中的别名)获取jquery包,并将变量$暴露给整个browserify包。

如果我要

npm install moment --save

然后将以下内容添加到browserify-shim:

"moment": "moment"

我也会将moment.js暴露给整个包。

需要记住的是,jQuery格式正确,因此您可以将它放在主应用程序中,而不是使用browserify-shim:

  var $ = window.jQuery = require("jquery");

答案 1 :(得分:0)

当你有"转换"在你的package.json中,这意味着将自动应用此转换。

所以你的例子相当于运行browserify -t browserify-shim

如果你有

"transform": [
  "a",
  "b",
  "c"
]

并运行browserify mycode.js > bundle.js,将应用转化abc

使用"转换"字段还意味着您可以在npm上分发包含转换为依赖项的包。当其他人想要将你的软件包包含在他们的browserify包中时,将会应用正确的转换。

这里有用的文档:https://github.com/substack/browserify-handbook#browserifytransform-field