【问题标题】:Using browserify with a minified JavaScript library将 browserify 与缩小的 JavaScript 库一起使用
【发布时间】:2014-07-21 20:29:20
【问题描述】:
  1. 是否可以使用 Browserify “必需”和捆绑缩小的 JavaScript 库?换句话说,Browserify 是否要求 JavaScript 文件为源格式?
  2. 如果 JavaScript 文件不是 CommonJS 模块(不导出任何内容),是否可以使用 Browserify 进行捆绑?换句话说,如果 xyz.js 不是 CommonJS 模块,require('xyz.js') 会做什么。

【问题讨论】:

  • 1.是的,browserify 只需要任何 require('') 和 module.exports 都是完整的。 2. require('xyz.js') 在第一次需要时运行 xyz.js 然后什么都不做。
  • 谢谢@generalhenry。那么对于问题 2,如果我有一个不是 CommonJS 模块的 JavaScript 文件,我该如何浏览它?或者我什至不应该尝试这样做?
  • 您只需使用入口点的相对路径,例如require('./vendor/xyz.js')。 Browserify 最好与 commonjs 一起使用,但它适用于任何 js。

标签: javascript browserify commonjs


【解决方案1】:
  1. 如果它正确导出其属性(例如,使用 export 或 module.exports)并使用 require() 加载模块,则可以。
  2. 当然可以捆绑它,但是您不能从require() 调用的结果中访问它的属性/数据。但是,如果它使用例如全局对象进行导出,您可以在需要文件后访问它。

xyz.js:

window.myExport = "hello";

main.js:

var xyz = require("xyz");
xyz.myExport; // undefined
window.myExport; // "hello"

【讨论】:

  • 谢谢@Radek。要跟进您的答案#2,无论如何都需要此类文件是一种好习惯吗?还是应该使用
  • 很难说。我喜欢要求我的所有文件,即使它们不是 CommonJS 模块,因为我真的不喜欢拥有比一个更多的脚本标签。这也是一种很好的做法。所以这取决于你,只需选择对你来说更好、更合乎逻辑的选项。 ;-)
  • 谢谢@Radek。好建议。
猜你喜欢
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多