如何在package.json中添加NODE_PATH到webpack?
问题描述:
如何添加NODE_PATH到package.json中的webpack?我packcage.json的如何在package.json中添加NODE_PATH到webpack?
部分:
"dependencies": {
"axios": "^0.16.2",
"cross-env": "^5.0.1",
"koa": "^2.3.0",
"koa-mount": "^3.0.0",
"koa-static": "^4.0.1",
"koa-trie-router": "^2.1.5",
"mongodb": "^2.2.31",
"nuxt": "^1.0.0-rc3",
"socket.io": "^2.0.3"
},
"devDependencies": {
"babel-eslint": "^7.2.3",
"backpack-core": "^0.4.1"
},
"scripts": {
"test": "mocha --harmony",
"dev": "NODE_PATH=./app backpack dev",
"build": "nuxt build && backpack build",
"start": "cross-env NODE_ENV=production NODE_PATH=./app node build/main.js"
},
backpack.config.js:
module.exports = {
webpack: (config, options, webpack) => {
config.entry.main = './server/index.js'
return config
}
}
在我server.js:
import Koa from 'koa'
import { Nuxt, Builder } from 'nuxt'
import socket from 'socket.io'
import http from 'http'
import config from 'config' // this is './config' without NODE_PATH=./app
错误在npm run dev
:
This dependency was not found:
* config in ./server/index.js
但是,如果我运行npm start
,它工作正常。
任何想法?
答
您应该编辑您的webpack配置,以包含用于解析模块的应用程序目录。
基于您的代码示例中,它应该是这样的:
module.exports = {
webpack: (config, options, webpack) => {
config.entry.main = './server/index.js'
config.resolve.modules = ['./app']
return config
}
}
见的WebPack文档细节:
https://webpack.js.org/configuration/resolve/#resolve-modules
感谢您的回答和链接,帕特里克! – laukok