gpt4 book ai didi

javascript - grunt-ng-constant 不生成配置脚本

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:52 25 4
gpt4 key购买 nike

我正在尝试在我的 AngularJS 中使用环境变量来进行特定于环境的配置。我正在使用使用 Grunt 的 Yeoman 工作流,grunt-ng-constant 插件据称有助于特定环境的配置。在关注这个tutorial ,我相应地设置了我的 Gruntfile,但是当我在控制台中运行 grunt serve 时,config.js 没有写入 /app/scripts/。没有 config.js,我无法将环境变量注入(inject) Angular 应用程序。

这是我的 Gruntfile 的片段:

module.exports = function (grunt) {

// Time how long tasks take. Can help when optimizing build times
require('time-grunt')(grunt);

// Automatically load required Grunt tasks
require('jit-grunt')(grunt, {
useminPrepare: 'grunt-usemin',
ngtemplates: 'grunt-angular-templates',
cdnify: 'grunt-google-cdn'
});

// Configurable paths for the application
var appConfig = {
app: require('./bower.json').appPath || 'app',
dist: '../server/dist'
};

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-ng-constant');

// Define the configuration for all the tasks
grunt.initConfig({

// Project settings
yeoman: appConfig,

ngconstant: {
// options for all environments
options: {
space: ' ',
wrap: '"use strict";\n\n {%= __ngModule %}',
name: 'config'
},

// Development/Testing environment
development: {
options: {
dest: '<%= yeoman.app %>/scripts/config.js'
},
constants: {
ENV: {
name: 'development',
apiEndpoint: 'http://localhost:3000'
}
}
},

// Production environment
production: {
options: {
dest: '<%= yeoman.dist %>/scripts/config.js'
},
constants: {
ENV: {
name: 'production',
apiEndpoint: 'http://productionUrl'
}
}
}
},

...

grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'connect:dist:keepalive']);
}

grunt.task.run([
'clean:server',
'wiredep',
'concurrent:server',
'autoprefixer:server',
'connect:livereload',
'watch',
'ngconstant:development'
]);
});

...

生成的是 /.sass-cache/.tmp 在与 Gruntfile 相同的目录 (client) 中。

我的应用文件结构:

enter image description here

最佳答案

ngconstant 任务未被调用,因为它在 watch 任务之后。修改运行 block ,使行 'ngconstant:development' 紧挨着 'autoprefixer:server', 因此它在连接和监视任务之前。不要忘记添加逗号!

    grunt.task.run([
'clean:server',
'wiredep',
'concurrent:server',
'autoprefixer:server',
'ngconstant:development',
'connect:livereload',
'watch'
]);

此外,bower.json 文件中的应用程序路径可能有误。可以肯定的是,通过更改 appConfig 修改您应用的路径,使其看起来像这样:

var appConfig = {
app: 'app',
dist: '../server/dist'
}

关于javascript - grunt-ng-constant 不生成配置脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33641723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com