首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将本地json数据从终端加载到d3.js和webpack

将本地json数据从终端加载到d3.js和webpack
EN

Stack Overflow用户
提问于 2017-08-13 14:46:14
回答 1查看 401关注 0票数 0

我有一个用d3.js制作的图表,它使用本地json文件。

为了可视化数据,我不得不使用一个web服务器,所以我决定使用webpack,因为它也是热重装的。

问题是,我仅限于选定的文件(data.json),因为它出现在入口点(index.js)中:

index.js

代码语言:javascript
复制
d3.json("data.json", function(error, d) {
    // get data and draw chart

当我想显示图表时,我使用npm start,然后转到localhost:8080

package.json

代码语言:javascript
复制
{
  "name": "tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server",
    "build": "babel src -d lib",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-preset-env": "^1.3.3",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.28.0",
    "style-loader": "^0.16.1"
  }
}

webpack.config.js

代码语言:javascript
复制
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const HtmlWebpackPluginConfig = new HtmlWebpackPlugin({
  template: './src/index.html',
  filename: 'index.html',
  inject: 'body'
})
module.exports = { 
  entry: './src/index.js', 
  output: { 
    path: path.resolve('dist'), 
    filename: 'index_bundle.js'
  }, 
  module: { 
    loaders: [ 
      { test: /\.js$/, 
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      { test:/\.css$/,
        loader: ['style-loader', 'css-loader'],
        exclude: /node_modules/
      },
    ]
  }, 
  plugins: [
    HtmlWebpackPluginConfig,
    new CopyWebpackPlugin([
      { from: 'src/data.json'}
    ])
    ]
}

如何将json文件作为参数传递?类似于:

代码语言:javascript
复制
npm start "another_data.json"

还是用节点?

代码语言:javascript
复制
node "another_data.json"
EN

回答 1

Stack Overflow用户

发布于 2017-08-13 20:59:13

您可以使用process.argv,它是包含所有命令行参数的数组。你可以试试:

代码语言:javascript
复制
process.argv.forEach(function (item, index) {
  console.log(index + ': ' + val);
});

所以,如果你打电话给node app.js "ok" "non",你会得到这样的信息:

代码语言:javascript
复制
0: /usr/src/node/node-v4.4.7-linux-x64/bin/node
1: /home/scrapbook/tutorial/app.js
2: ok
3: non

或与国家预防机制:

代码语言:javascript
复制
{
  "name": "adsf",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "special": "node app.js"
  },
  "author": "",
  "license": "ISC"
}

使用app.js:

代码语言:javascript
复制
console.log(process.env.npm_config_myVar);

调用npm run special --myVar="special.js"

其结果应是:

代码语言:javascript
复制
special.js
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45661597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档