我的代码使用了require js来做依赖管理,并使用grunt-contrib-requirejs
做了打包。
js分为了libs,utils,app三个文件夹,分别存放通用js,组件,私有启动js文件。
配置部分如下:
requirejs: {
build: {
options: {
appDir: './dev',
baseUrl: 'js',
dir: './build',
optimize: 'uglify2',
generateSourceMaps: true,
preserveLicenseComments: false,
// useSourceUrl: true,
optimizeCss: 'standard.keepComments.keepLines',
paths: {
'jquery': 'libs/jquery-1.8.2',
'a': 'utils/a',
'b': 'utils/b',
'c': 'utils/c',
'd': 'utils/d',
'e': 'utils/e',
'de': 'app/de'
},
shim: {
},
modules: [{
name: 'de'
}]
}
}
}
现在的问题是,作为要被打包的de.js
(app下的启动文件,依赖了一些组件),只是打包生成了其对应的map
文件,混淆压缩文件,缺少对应的文件src.js
(混淆压缩之前的文件copy)。
请问我配置哪里出了问题呢?
另外,提供了github地址:https://github.com/xiaomingming/requirejs-package。
请指点。
我gruntfile 的 require 的配置
requirejs: {
compile: {
options: {
optimize: "none",
generateSourceMaps: false,
// publish 任务时不可以将 generateSourceMaps 配置项打开
preserveLicenseComments: false,
useSourceUrl: true,
baseUrl: "resource/js",
mainConfigFile: 'resource/js/app.js',
name : "app",
out: "resource/js/r.app.js"
}
}
}
---------------
app.js 的内容
---------------
require.config({
baseUrl: "resource/js",
paths: {
"main" : "app",
"jquery" : "jquery/jquery-2.1.1.min",
"angular" : "angular/angular",
"bootstrap" : "bootstrap/bootstrap.min",
"ocLazyLoad" : "plugins/oclazyload/dist/ocLazyLoad.min",
"ui-router" : "ui-router/angular-ui-router.min",
"ui-bootstrap" : "bootstrap/ui-bootstrap-tpls-0.12.0.min",
"notify" : "plugins/angular-notify/angular-notify.min",
"icheck" : "plugins/iCheck/icheck.min"
},
shim: {
"angular" : { exports: "angular" },
"ocLazyLoad" : { deps : ["angular"] },
"ui-router": { deps : ["angular"]},
"ui-bootstrap" : { deps : ["angular"]},
"notify" : { deps : ["angular"] },
"icheck" : { deps : ["angular"] }
}
});
require(["angular","main/app","main/param","main/service","main/config","main/directives","main/controllers"],function (angular) {
angular.bootstrap(document,["mlp"]);
});
直行 grunt require // 这样可以打包合并的
希望可以帮到题主,哦我是用的grunt-requirejs 不过语法应该也是差不多的
你好,请问你的问题解决了吗?我也想知道使用grunt-contrib-requirejs打包如何生成未压缩和压缩版本的文件?如果你知道,请你发送到我的邮箱839531376@qq.com,好吗?感激不尽!