从不同位置访问node_module

时间:2018-01-23 09:18:25

标签: node.js vue.js gruntjs

因此,我正在使用Grunt + Grunt-Browserify + Vue + Vueify设置项目,并且我在访问“vue'”时遇到问题。模块。

这是我的文件夹结构:

app/
   build/
   app.js
   app.vue

grunt/
     node_modules/
     Gruntfile.js
     packaje.json

这是我 Gruntfile 的内容:

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        browserify: {
            vendor: {
                src: ['../app/app.js'],
                dest: '../app/build/app.js',
                options: {
                    watch: true,
                    keepAlive: true,
                    browserifyOptions: {
                        debug: true
                    },
                    transform: ['vueify']
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-browserify');

    grunt.registerTask('default', ['browserify']);
};

这是我 app.js 的内容:

var Vue = require('vue');
var App = require('./app.vue');

new Vue({
    el: '#app',
    render: function (createElement) {
        return createElement(App);
    }
});

当我运行grunt时,我得到无法找到模块' vue'

如果我像这样设置变量Vue

var Vue = require(__dirname + '/' + 'vue');

我收到此错误Cannot find module 'vue-hot-reload-api'

如果我将应用文件夹放在与 node_modules 相同级别的 grunt 文件夹中,并将变量Vue设置为这个:var Vue = require('vue');一切正常。

如何使其工作,以便无论我的应用程序位于何处,我总能找到模块

谢谢你,祝你有愉快的一天:)

1 个答案:

答案 0 :(得分:0)

您的目录名称和路径似乎不正确:

src: ['../../vue-app/app.js']

应该是

src: ['../app/app.js']