假设我有一个浏览器项目文件,如下所示:
// animals.js
var cow = require('./components/cow');
var donkey = require('./components/donkey');
然后用browserify构建并捆绑了
browserify animals.js > dist/build.js
然后尝试require
将构建的文件放入另一个文件中:
// farm.js
var animals = require('./dist/build`);
Browserify讨厌这个,并在我尝试捆绑farm.js
时抛出此类错误:
Error: Cannot find module './components/cow' from '/path/to/project/dist'
我该如何解决这个问题?用例是animals.js
是通过bower包含在其他项目中的库。有些项目,如farm.js
,使用browserify和debowerify,而其他项目则没有。
更新
我没有任何问题,包括另一个Webpack项目中的捆绑Webpack文件,所以我打算将所有捆绑包切换到那个。
答案 0 :(得分:1)
Browserify包不是CommonJS模块,也不能直接导入。您必须编写一些Browserify转换或插件来解构捆绑包并找到您的模块,这可能会很棘手。
您的图书馆是否已捆绑在一起?通常我会将animals.js
cow.js
和donkey.js
作为普通.js文件留在项目中。
然后制作一个Bower包。这就是大多数其他凉亭包的设置方式。
您可以使用Debowerify使Browserify在Bower的包中查找模块,而不是仅在node_modules中查找模块。
然后您的其他应用可以bower install animals
和:
var cow = require('animals/cow.js');