我试图将两个js文件--- main.js和cookies.js编译成一个文件。
-/
|-main.js
|-cookie.js
|-require.js
|-main-built.js
|-build.js
main.js保存脚本逻辑并依赖/需要cookie.js。
如果我先加载cookie.js然后再加载main.js,那么没有require.js,一切都很好。即:
<script src="cookie.js"></script>
<script src="main.js"></script>
这适用于开发,但我需要一个最终的js文件进行生产。
我开始尝试使用require.js(http://requirejs.org/)
<script data-main="main-built.js" src="require.js"></script>
其中main-built.js是运行的单个文件输出结果:
node r.js -o build.js
我的构建文件设置如下:
({
include: ["cookiejs","requirejs"],
baseUrl: '.',
paths: {
'cookiejs': 'cookie',
'requirejs': 'require'
},
name:"main",
out: "main-built.js",
})
&#34;主&#34;从构建文件中拉入main.js, &#34;需要&#34;拉入require.js, &#34;饼干&#34;拉入cookie.js。
问题 执行最终编译文件时,未定义cookie函数。具体来说,由于cookie.js处理cookie交互,错误是:
"Uncaught ReferenceError: cookie is not defined"
我可以看到cookie.js代码实际上被复制到main-built.js中,所以我认为它是如何告诉require.js main.js依赖于cookie.js并拥有编译器的问题重新排序最终主构建文件中代码的执行,但我真正抓住了如何告诉require.js如何做到这一点。
我尝试过什么
在构建文件中包含和排除require.js并没有看到任何区别。
使用&#34; deps&#34;而不是&#34;包括&#34;在构建文件中---我没有发现差异
各种uglify构建选项
答案 0 :(得分:0)
因为你的主要取决于cookiejs。您必须通过requirejs配置定义此关系。理想情况下,这些依赖项应该在依赖文件中定义,如下所示。
main.js
.put()
您还可以使用垫片来定义这些与您无法控制的文件(此处不是这种情况)的依赖关系。
def put(self, request):