我正在按照本教程link创建一个grafana插件。
但是,当我将此代码link从教程复制到我的测试服务器(没有dist/
文件夹)并运行npm install
时,npm不会创建新的dist/
相反,它会创建一个node_modules
文件夹。
我在这里错过了一步,还是我理解不正确的东西?由于我希望该命令在dist/
文件夹中的文件中创建src/
文件夹?
grunt文件:
module.exports = (grunt) => {
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('grunt-execute');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.initConfig({
clean: ['dist'],
copy: {
src_to_dist: {
cwd: 'src',
expand: true,
src: ['**/*', '!**/*.js', '!**/*.scss'],
dest: 'dist'
},
pluginDef: {
expand: true,
src: [ 'plugin.json', 'README.md' ],
dest: 'dist',
}
},
watch: {
rebuild_all: {
files: ['src/**/*', 'plugin.json'],
tasks: ['default'],
options: {spawn: false}
},
},
babel: {
options: {
sourceMap: true,
presets: ['es2015'],
plugins: ['transform-es2015-modules-systemjs', 'transform-es2015-for-of'],
},
dist: {
files: [{
cwd: 'src',
expand: true,
src: ['*.js'],
dest: 'dist',
ext: '.js'
}]
},
},
});
grunt.registerTask('default', ['clean', 'copy:src_to_dist', 'copy:pluginDef', 'babel']);
};
package.json:
{
"name": "clock-panel",
"version": "1.0.0",
"description": "Clock Panel Plugin for Grafana",
"main": "src/module.js",
"scripts": {
"lint": "eslint --color .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"clock",
"grafana",
"plugin",
"panel"
],
"author": "Raintank",
"license": "MIT",
"devDependencies": {
"babel": "~6.5.1",
"babel-eslint": "^6.0.0",
"babel-plugin-transform-es2015-modules-systemjs": "^6.5.0",
"babel-preset-es2015": "^6.5.0",
"eslint": "^2.5.1",
"eslint-config-airbnb": "^6.2.0",
"eslint-plugin-import": "^1.4.0",
"grunt": "~0.4.5",
"grunt-babel": "~6.0.0",
"grunt-contrib-clean": "~0.6.0",
"grunt-contrib-copy": "~0.8.2",
"grunt-contrib-uglify": "~0.11.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-execute": "~0.2.2",
"grunt-systemjs-builder": "^0.2.5",
"load-grunt-tasks": "~3.2.0"
},
"dependencies": {
"lodash": "~4.0.0",
"moment": "^2.12.0"
}
}
答案 0 :(得分:6)
您缺少运行grunt
默认任务
你应该跑:
npm install
(安装您的依赖项),然后是grunt
(将src文件复制到dist,如您在Gruntfile.js copy:src_to_dist
任务中所见)
简而言之,只需运行:$ npm install && grunt
答案 1 :(得分:2)
npm install
命令安装项目将用作依赖项的包。它将在当前目录中创建node_modules
目录(如果尚未存在),并将该程序包下载到该目录。
答案 2 :(得分:0)
实际上,如果有 npm install
,运行 prepublish
也会执行 package.json
。
根据您的需要,听起来您想这样做:
"scripts": {
"build": "grunt",
"prepublish": "npm run build"
},