如何使用 browserify 导入独立模块构建?
how to import a standalone module build with browserify?
我的问题是如何在另一个 javascript 文件中导入通过 browserify 获得的独立模块。以下是一些具体细节:
我用 browserify 创建了一个独立模块,如下所示:
browserify module.js --s module_name > output.js
文件 module.js 的末尾包含行
module.exports = module_name;
在文件 "use_module.js" 中,我现在可以使用模块 module_name
,在某些 html 文件中使用此代码:
<sctipt src="output.js">
<sctipt src="use_module.js">
但我想要的是在我的 html 文件中仅指定脚本 "use_module.js",并以某种方式直接在 javascript 中将 "output.js" 导入 "use_module.js" =] 代码。我尝试了两种不同的方法:
我在 use_module.js 中尝试了 javascript import module_name from './output.js'
,但是找不到模块 module_name
。不知何故,我不确定 module.exports
是否与 export
相同,也不确定 browserify 对我的 module.exports
所做的事情。 (我对此很困惑)。
我尝试使用 require(./output.js)
然后重新使用 browserify,但是我在使用 browserify 时遇到了很多奇怪的错误,关于大量丢失的模块。也许我应该在 "output.js" 旁边的文件中指定一些模块信息,browserify 可以处理,但我真的不知道。
我了解这两种方法的失败之处:
正如我所想,import
仅适用于 export
而不是 modules.exports
。我还读到 browserify 不能使用 import/export
语法,它还是太新了。
更有趣的是:浏览器化文件包含大量 require(...)
调用,它指的是 browserify 创建的函数,而不是 CommonJS require
关键字。当然 browserify 不知道其中的区别,因此会寻找大量的模块来第二次导入。只需要将单词 "require" 重命名为其他名称,即可第二次应用 browserify...
然而,我发现我的答案并不完全令人满意:必须有一个正确的方法来做到这一点...
我的问题是如何在另一个 javascript 文件中导入通过 browserify 获得的独立模块。以下是一些具体细节:
我用 browserify 创建了一个独立模块,如下所示:
browserify module.js --s module_name > output.js
文件 module.js 的末尾包含行
module.exports = module_name;
在文件 "use_module.js" 中,我现在可以使用模块 module_name
,在某些 html 文件中使用此代码:
<sctipt src="output.js">
<sctipt src="use_module.js">
但我想要的是在我的 html 文件中仅指定脚本 "use_module.js",并以某种方式直接在 javascript 中将 "output.js" 导入 "use_module.js" =] 代码。我尝试了两种不同的方法:
我在 use_module.js 中尝试了 javascript
import module_name from './output.js'
,但是找不到模块module_name
。不知何故,我不确定module.exports
是否与export
相同,也不确定 browserify 对我的module.exports
所做的事情。 (我对此很困惑)。我尝试使用
require(./output.js)
然后重新使用 browserify,但是我在使用 browserify 时遇到了很多奇怪的错误,关于大量丢失的模块。也许我应该在 "output.js" 旁边的文件中指定一些模块信息,browserify 可以处理,但我真的不知道。
我了解这两种方法的失败之处:
正如我所想,
import
仅适用于export
而不是modules.exports
。我还读到 browserify 不能使用import/export
语法,它还是太新了。更有趣的是:浏览器化文件包含大量
require(...)
调用,它指的是 browserify 创建的函数,而不是 CommonJSrequire
关键字。当然 browserify 不知道其中的区别,因此会寻找大量的模块来第二次导入。只需要将单词 "require" 重命名为其他名称,即可第二次应用 browserify...
然而,我发现我的答案并不完全令人满意:必须有一个正确的方法来做到这一点...