- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Grunt、usemin 2、requirejs 和 uglify。我在构建中观察到,requirejs 没有正确地将我的依赖项包含到我的单个串联构建文件中。当我在/dist 之外运行 index.html 时,在查找“jquery”、“app”和某些第三方 js 文件时会看到错误,或者有时会出现“define is not Defined”。
我阅读了有关 grunt-usemin 的以下问题并删除了 require block ,但这些线程中仍然存在一些问题。
我进行了搜索,发现了这篇文章 How to integrate Yeoman and Requirejs ,这让我明白了,当我从使用 grunt-contrib-requirejs 更改为 grunt-requirejs 时,我看到 Requirejs 优化器正在运行。不幸的是,我仍然看到这些错误:
Uncaught ReferenceError: define is not defined.
我的index.html中有以下内容:
<!-- build:js js/main.js -->
<script src="bower_components/requirejs/require.js"></script>
<script src="js/main.js"></script>
<!-- endbuild -->
这是我的 Grunt 文件:http://jsbin.com/futocusu/3/edit?js
第 112 期有人讨论过要就这个主题创建一篇关于使用 Yeoman 的文章,但我认为它还没有写出来。
有没有人找到使用 usemin v2 与 grunt 和 requirejs 在构建时输出到单个 concat+uglify 文件的最佳方法?我也不确定使用 grunt-contrib-requirejs 和 grunt-requirejs 有什么区别以及何时使用哪一个。
最佳答案
看起来您试图对 main.js 做太多事情。
我在 Gruntfile.js 中有以下构建任务
grunt.registerTask('build', [
'copy', // copies the src directory to dist (htdocs)
'requirejs', // do an r.js build to concat modular dependencies
'concat:head', // concats js in the head
'uglify:head', // compresses js in the head
'uglify:foot', // compresses js in the foot
'cssmin', // minifies and concats css
'usemin', // runs through html and inputs minified js and css
'clean:afterBuild' // deletes files that are not required for build
]);
这里是每个相关的 Grunt 任务(对我来说,这些任务存储在单独的文件中,因为我使用 load-grunt-config)。如果您想在 gruntfile 中使用这些,那么您所需要做的就是获取返回对象中的所有内容,并将其粘贴到 gruntfile 中的任务值中:
复制
module.exports = function (grunt, options) {
return {
main: {
cwd: 'src/',
src: '**',
dest: 'dist/',
expand: true,
flatten: false
},
};
};
requirejs
module.exports = function(grunt, options) {
return {
compile: {
options: {
appDir: "src/to/require/app",
baseUrl: "./",
mainConfigFile: "src/to/require/app/common",
dir: "dist/to/require/app",
// build a common layer
modules: [
{
"name": "common"
}
]
}
}
};
};
连接
module.exports = function (grunt, options) {
return {
head: {
/* other stuff */
},
foot: {
src: [
'dist/to/require/app/some_other_js.js',
'dist/to/require/app/external/require.js',
'dist/to/require/app/external/require.text.js',
'dist/to/require/app/common.js'
],
dest: 'src/to/require/app/compiled_footer_js.js',
}
};
};
丑化
module.exports = function (grunt, options) {
return {
head: {
/* other stuff *
},
foot: {
files: {
'src/to/require/app/compiled_footer_js.min.js': ['src/to/require/app/compiled_footer_js.js']
}
}
};
};
使用分钟
module.exports = function (grunt, options) {
return {
html: [
'src/path/to/index.html'
]
};
};
关于requirejs - 如何使用 yeoman、grunt、usemin 2 和 requirejs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998166/
我正在尝试全新安装 Yeoman,但在我尝试使用以下命令将其删除后,Yo 命令仍然存在: sudo npm remove -g yeoman npm remove -g yeoman sudo npm
当 yeoman 以嵌入形式运行时,我无法运行子生成器。 integrating yeoman in other tools 的文档提供这个例子: var yeoman = require('yeom
使用最新的 yeoman 更新 1.0,我们是否能够更改创建目录结构的方式?例如...如果我想在根目录而不是“/app”文件夹中创建我的文件,这可能吗?另外,如果我们想将我们的 Assets 文件夹命
我喜欢 Yeoman 的功能,例如 Package Manager (Bower)、Livereload 集成、Compass 等。 因此,我想用它来处理我的公共(public)网站。但是,我不想使用
我是创建 Yeoman Generator 的新手。我使用了 generator-generator 来让我开始,我经历了创建它、测试和把它全部搞定的过程。 在创建 yo 生成器的 tuts 中,他们
为什么不推荐 Yeoman 在他们的网站上写网站时建立网站 http://yeoman.io/road.html Clearing up misconceptions […] - Not recomm
尝试执行yo angular时出现以下错误: 在脚手架中,还有其他错误消息。 我做了: npm install -g yonpm install -g generator-angularyo angu
我试过console.log('message') ,但它以黑色返回消息。 有没有办法在生成器中记录彩色消息? 最佳答案 对于查看此问题的新用户 console.log();根据 Documentat
我正在为一个相当典型的节点应用程序构建一个自耕农生成器: / |--package.json |--.gitignore |--.travis.yml |--README.md |--app/
几个月前,我使用生成器角度来搭建一个项目,整个生态系统(karma、Node 版本、grunt 包)已经取得了相当大的进展。我在运行测试、构建东西等方面不断遇到问题。 我知道我可以使用 nvm 降级我
我不小心安装了一个我不想要的生成器。 我找不到任何方法来删除它。 我应该怎么做才能实现这个目标? 最佳答案 生成器只是普通的 npm 模块,因此您可以使用以下命令删除它 npm uninstall -
我创建了一个 Yeoman 生成器并希望我的团队使用它。 如果我在 Github 上更新我的生成器会发生什么?他们在本地安装了旧版本的生成器。他们是否总是需要重新安装才能获得最新版本? 团队成员不知道
我正在构建一个生成器,最后我需要在应用程序的某个目录中进行npm install,我尝试了以下操作: this.spawnCommandSync('cd', [this.destinationRoot
在使用 Yeoman 搭建脚手架时,我想用模板替换应用程序中的部分内容。一切似乎都很顺利,但我在脚手架期间遇到了此冲突错误。 这个. 模板( '条件文件/html/_signup.email.html
我是一名 javascript 初学者,通过遵循编写第一个生成器教程并阅读其他生成器代码,我已经成功地使用我的第一个生成器实现了这一目标。 我尝试了各种方法来使其正常工作,但都失败了,如果有人能指出我
我正在为 yeoman 使用角度生成器,目前默认行为是我这样做的时候 yo angular:controller testController 我创建了 2 个文件 create app\script
所以我一直在为我的项目使用 yeoman.io,并且我为我的图像设置了文件夹结构。但是当我构建它时,我的文件的文件名发生了变化。 我什至使用: $ yeoman build:text 因为我只想缩小我
如何通过自耕农生成器创建一个空目录? 我看过 mem-fs-editor ,但据我所知,只有在创建子文件时才会创建目录。我试过在子目录中创建一个文件,然后删除该文件,但这不起作用(我假设因为 mem-
我正在构建一个生成器,其中部分包含来自使用 exec 创建的另一个项目的脚手架.根据用户输入,我需要移动或删除此脚手架的一部分。 现在我正在用节点的 fs.child_process.spawn 做这
我正在跟踪yeoman.io上列出的示例Yeoman工作流程: npm install -g generator-angular generator-karma # install generato
我是一名优秀的程序员,十分优秀!