如何在Laravel5.2资产文件中使用节点模块

时间:2018-09-09 19:57:23

标签: node.js laravel npm laravel-5.2 web3js

这次,我试图在laravel 5.2项目中使用npm web3软件包。我对使用npm完全陌生,而在laravel中也是如此。

到目前为止,我的package.json文件中包含以下内容-

{
  "private": true,
  "devDependencies": {
    "gulp": "^3.9.1"
  },
  "dependencies": {
    "bootstrap-sass": "^3.0.0",
    "laravel-elixir": "^2.0.0",
    "web3": "^1.0.0-beta.36"
  }
}

当我执行npm install时,所有节点依赖项都安装在根目录中的node_modules中。现在,我试图弄清楚如何在public/assets/js/app.js文件中使用此软件包。

使用该软件包是否还需要使节点服务运行?

npm版本:6.4.1
节点版本:v8.11.4

非常感谢您的帮助。

更新后的问题-2018年9月10日

由于克服了我面临的8.0的一些问题,因此将我的节点包降级为6.0。

节点版本:v6.0.0
npm版本:3.8.6

新的package.json:

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "@types/node": "^10.9.4",
    "gulp": "^3.9.1",
    "laravel-elixir-rollup": "^0.3.3",
    "laravel-elixir-webpack": "^1.0.1",
    "require-dir": "^0.3.2"
  },
  "dependencies": {
    "bootstrap-sass": "^3.0.0",
    "laravel-elixir": "^5.0.0",
    "web3": "^1.0.0-beta.36"
  }
}

新的gulpfile.json:

var elixir = require('laravel-elixir');
var path = require('path');
require('laravel-elixir-webpack');

elixir(function(mix) {
    mix.webpack(
        './node_modules/web3/src/index.js',
        './public/js/web3-compiled.js'
    );
});

当我在控制台中运行npm run dev时,它将停止完成操作,如下所示-

[digvijay@Digvijays-MacBook-Air:/var/www/html/estatebaron$ npm run dev

> @ dev /private/var/www/html/estatebaron
> gulp watch

node_modules/nan
[17:10:07] Using gulpfile /private/var/www/html/estatebaron/gulpfile.js
[17:10:07] Starting 'watch'...
[17:10:07] Finished 'watch' after 18 ms

我在这里期望的是在web3-compiled.js目录中创建的js文件名public/js,但是现在不会发生。我在这里想念什么吗?

1 个答案:

答案 0 :(得分:0)

如果您使用默认的laravel 5.2配置,则可能会丢失package.json see this

中的某些行

因此,要使其正常运行,请运行npm run dev,但请确保使用gulpfile.js正确配置gulp。在https://laravel.com/docs/5.3/elixirhttps://github.com/gulpjs/gulp/tree/v3.9.1/docs

中详细了解此内容